2008-11-25 17 views
5

मैं greasemonkey में जोड़ने के लिए एक जावास्क्रिप्ट स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो किसी तत्व के बाद बटन जोड़ता है। इस बटन के लिए ऑनक्लिक को माता-पिता तत्व टेक्स्ट को कीबोर्ड पर कॉपी करना चाहिए। मुझे लगता है कि पहले से ही इस जैसे पाठ की क्लिपबोर्ड पर चयनित प्रतिलिपि उदाहरण के बहुत देखा है:Greasemonkey जावास्क्रिप्ट क्लिपबोर्ड बटन पर कॉपी करें

<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"> 

मिले here

मुझे यह भी पता चला है कि आप इनपुट तत्वों में टेक्स्ट का चयन कर सकते हैं। मैंने अभी तक दोनों व्यवहार्य समाधान के साथ-साथ कई अन्य तकनीकों के संयोजन की कोशिश की है। मुझे यह भी यकीन नहीं है कि उपरोक्त कोड क्लिपबोर्ड पर क्यों कॉपी करता है। क्या किसी के पास इसका कोई समाधान है?

+0

यह भी ध्यान दें: https://developer.mozilla.org/en/Using_the_Clipboard – javamonkey79

उत्तर

5

आप समय लगा तो पूरा लेख पढ़ने के लिए, लेखक कहता है कि यह Firefox के लिए काम नहीं करता है ...
वास्तव में, मुझे लगता है कि यह और भी काम नहीं करता है आईई के लिए, क्योंकि यह क्लिपबोर्ड से संबंधित कुछ भी नहीं करता है!

फ़्लैश का उपयोग कर एक तकनीक है, क्योंकि डिफ़ॉल्ट रूप से, फ़ायरफ़ॉक्स सुरक्षा कारणों से क्लिपबोर्ड पहुंच को रोकता है।
अन्यथा, प्रतिलिपि करने के लिए शास्त्रीय तरीका है:

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); 
} 

(किसी साइट के लिए) प्रति सक्षम करने के बाद।

+5

मैंने पूरे लेख को पढ़ने के लिए समय निकाला - मुझे बस "नोट" याद आया; टेस्टी होने का कोई कारण नहीं है, हम सभी गलतियां करते हैं। फिर भी, आपका समाधान सही तरीका है, धन्यवाद। – javamonkey79

1

क्या आप वाकई अपना उदाहरण काम करते हैं? यह मेरे ब्राउज़र में नहीं है। लेकिन अगले पृष्ठ पर एक नज़र डालें: http://www.jeffothy.com/weblog/clipboard-copy/

+0

यह एफएफ 3.0.4 में काम करता है, लेकिन कॉपी बटन को काम करने के लिए आपको टेक्स्ट का चयन करना होगा। मैंने उस ब्लॉग पोस्ट को देखा है, और यह कॉपी करने के लिए फ़्लैश का उपयोग करने पर निर्भर करता है, जो मैं करने की कोशिश कर रहा हूं उसके लिए काम नहीं करेगा। धन्यवाद :) – javamonkey79

संबंधित मुद्दे