2014-09-29 7 views
5

मेरा प्रारंभिक लक्ष्य क्लिपबोर्ड से चिपकाई गई छवि प्राप्त करना है। लेकिन मुझे पेस्ट इवेंट पाने में परेशानी है।जावास्क्रिप्ट पेस्ट इवेंट क्रोम में ठीक काम कर रहा है लेकिन फ़ायरफ़ॉक्स

JSFiddle, जहां मैं इस समस्या reproduced में, HTML केवल एक div शामिल हैं:

<div style="width: 200px; height: 200px; background: grey" id="pasteTarget" > </div> 

जावास्क्रिप्ट पहले मेरी समारोह handlePaste() पेस्ट घटना को बांधता है।

window.onload = function() { 
    //adding paste event listener on the div 
    document.getElementById("pasteTarget"). 
     addEventListener("paste", handlePaste); 
}; 

इस समारोह जब उपयोगकर्ता प्रेस Ctrl + V या चयन "पेस्ट" ब्राउज़र के मेनू में कहा जा माना जाता है।

function handlePaste(e) { 
    alert("I'm in handlePaste");  
    for (var i = 0 ; i < e.clipboardData.items.length ; i++) { 
     var item = e.clipboardData.items[i]; 
     console.log("Item: " + item.type); 
     alert(item.type); 
    } 
} 

महत्वपूर्ण: यह फ़ंक्शन क्लिपबोर्ड की सामग्री प्राप्त करने के लिए e.clipboardData तक पहुंचता है। उदाहरण के लिए, यदि आप PrtScrn कुंजी दबाते हैं, तो Ctrl + V, आप हैंडलपेस्ट विधि में एक प्रिंट स्क्रीन छवि भेजते हैं। अंतिम चेतावनी "छवि/पीएनजी" दिखाती है जब यह ठीक काम करती है।

क्रोम v37: जेएसफ़िल्ड ठीक काम करता है। फ़ायरफ़ॉक्स v32: हैंडलपेस्ट() विधि नहीं कहा जाता है, पहली चेतावनी पॉपअप नहीं होती है।

jsFiddle कोड: http://jsfiddle.net/demeylau/ke44bufm/1/

+0

मुझे संदेह है कि आप किसी भी संपादन योग्य तत्व – ovi

+0

@Ovi में पेस्ट कर सकते हैं - क्या यह क्रोम में काम करेगा क्योंकि क्रोम में एक प्रकार का बग है? –

उत्तर

2

जहां तक ​​मेरा बता सकते हैं, आप ब्राउज़र एजेंट प्रति अलग से चिपकाने को संभालने के लिए करने जा रहे हैं। यहोशू सकल इस लेख में पेस्ट घटना की जटिलताओं का एक बहुत शामिल हैं: Paste Wasteland

फ़ायरफ़ॉक्स और भी अधिक कुंठित होने के लिए पसंद करती है, लेकिन यह एक ब्लॉब के रूप में क्लिपबोर्ड डेटा के इलाज से एक फ़ाइल के रूप में छवि डेटा पढ़ने में संभव है। (ग्रॉस 'आलेख में पोस्टस्क्रिप्ट देखें) यह ओएस घटनाओं को थोड़ा अलग तरीकों से संभालने वाले ब्राउज़र में बहुत अधिक अनचाहे विरासत कोड है और संक्षेप में बताता है कि क्यों हमारे पास WebAPI जैसी चीजों में मानकीकृत नवीनतम सुविधाएं हैं। मुझे उम्मीद है कि यह मदद करता है।

+0

इस बारे में एक टिकर भी है [एफएफ में मुद्दा] (https://bugzilla.mozilla.org/show_bug.cgi?id=439189)। लेकिन यह अभी भी अनसुलझा है और अंतिम अपडेट 2014 में था। – muffir

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

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