هل من الممكن قراءة الحافظة في فايرفوكس، وسفاري وكروم باستخدام جافا سكريبت؟

StackOverflow https://stackoverflow.com/questions/233719

سؤال

وأنا أحاول قراءة محتويات الحافظة باستخدام جافا سكريبت. مع Internet Explorer انه من الممكن استخدام وظيفة

window.clipboardData.getData("Text")

هل هناك طريقة مشابهة لقراءة الحافظة في فايرفوكس، وسفاري وكروم؟

هل كانت مفيدة؟

المحلول

وسفاري يدعم القراءة الحافظة خلال أحداث onpaste:

معلومات

وأنت تريد أن تفعل شيئا مثل:

someDomNode.onpaste = function(e) {
    var paste = e.clipboardData && e.clipboardData.getData ?
        e.clipboardData.getData('text/plain') :                // Standard
        window.clipboardData && window.clipboardData.getData ?
        window.clipboardData.getData('Text') :                 // MS
        false;
    if(paste) {
        // ...
    }
};

نصائح أخرى

وجداول البيانات على الانترنت هوك السيطرة + C، والسيطرة + V الأحداث والتركيز نقل إلى عنصر تحكم ناحية النص الخفية وإما تعيينها محتويات محتويات الحافظة الجديدة المطلوبة لنسخ أو قراءة محتوياته بعد وقوع الحدث قد انتهى للصق.

على NO. وإذا كنت لا تجد الإختراق (على سبيل المثال نسخة قديمة من فلاش) لا تعتمد على ذلك.

هل لي أن أسأل لماذا كنت تريد أن تقرأ من الحافظة؟ إذا كان المستخدم يريد أن يمر على طول محتويات الحافظة، كل ما عليك القيام به هو معجون.

وأعتقد أن الناس استخدام عنصر فلاش مخفي لقراءة البيانات الحافظة من المتصفحات التي ذكرتها.

وعن طريق اقتراحagsamek أنا خلقت اختبار قليلا مقصوص وحصلت على العمل. في حالتي أنا في حاجة إلى الانتظار بعد pageload جديدة لإدخال لصق، لذلك أركز على جزء النص خارج عرض وقراءة النص من هناك.

هل يمكن تمديد هذه للاستماع إلى مفاتيح معينة (مزيج لصق) ثم التركيز على حقل مخفي. هناك بالتأكيد المزيد من العمل الذي يتعين القيام به كما كنت تعتقد أنك بحاجة إلى إعادة التركيز بعد ذلك على الماضي عنصر ولصق محتوى تركيزا هناك.

لاستخدامي حدة رغم أن هذا كان كافيا لجعله يعمل في أحدث كروم وفايرفوكس. الاقتراحات موضع ترحيب.

https://jsfiddle.net/wuestkamp/91dxjv7s/11/

$(function () {

    $('body').prepend('<input type="text" id="hidden_textbox" style="position: absolute; width:0px; height: 0px; top: -100px; left: -100px">');

    var $hiddenTextbox = $('#hidden_textbox');
    $hiddenTextbox.focus();

    $(document).on('paste', function () {
        setTimeout(function () {
            var val = $hiddenTextbox.val();

            console.log('pasted: ' + val);

        }, 50);

    });

});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top