سؤال

وأنا أحاول أن أكتب نصي جافا سكريبت لإضافة إلى غرسمونكي يضيف زر بعد عنصر. وعند _ النقر على هذا الزر يجب نسخ نص العنصر الآباء على لوحة المفاتيح. لقد رأيت الكثير من الأمثلة التي نسخة محددة مسبقا النص إلى الحافظة مثل هذا:

    <SCRIPT LANGUAGE="JavaScript">
    <!-- Begin
    function copyit(theField) {
    var selectedText = document.selection;
    if (selectedText.type == 'Text') {
    var newRange = selectedText.createRange();
    theField.focus();
    theField.value = newRange.text;
    } else {
    alert('Alert: Select The text in the textarea then click on this button');
    }
    }
    // End -->
    </script>
    <input onclick="copyit(this.form.text_select)" type="button" value="Click Here to Copy the Highlighted Text" name="copy_button">

والعثور على هنا .

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

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

المحلول

إذا كنت أخذت الوقت الكافي لقراءة المقال كاملا، يذكر المؤلف هذا لا يعمل لفايرفوكس ...
في الواقع، وأعتقد أنه لا يعمل حتى لIE، لأنه لا يفعل شيئا ذات الصلة إلى الحافظة!

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

var tc = textToCopy.replace(/\n\n/g, '\n');
if (window.clipboardData) // IE
{
  window.clipboardData.setData("Text", tc);
}
else
{
  unsafeWindow.netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
  const clipboardHelper = Components.classes
      ["@mozilla.org/widget/clipboardhelper;1"].
      getService(Components.interfaces.nsIClipboardHelper);
  clipboardHelper.copyString(tc);
}

وبعد تمكين نسخة (لموقع معين).

نصائح أخرى

هل أنت متأكد من يعمل المثال الخاص بك؟ لم يحدث ذلك في متصفحي. ولكن إلقاء نظرة على الصفحة التالية: http://www.jeffothy.com/weblog/ الحافظة نسخ /

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