2010-03-08 6 views
13

मैंने कुछ साइटें देखी हैं, जहां आप किसी लेख के टेक्स्ट को हाइलाइट करते हैं, इसे कॉपी करते हैं, और फिर पेस्ट करते हैं, इसमें वे अधिक टेक्स्ट जोड़ सकते हैं।किसी वेबसाइट से कॉपी/पेस्ट करते समय क्लिपबोर्ड डेटा संपादित करना

http://belfasttelegraph.co.uk/ पर एक लेख से टेक्स्ट के एक अनुभाग को कॉपी और पेस्ट करने का प्रयास करें और आप देखेंगे कि मेरा क्या मतलब है - वे चिपकाए गए पाठ में मूल आलेख में एक लिंक जोड़ते हैं।

यह कैसे किया जाता है? मुझे लगता है कि यहां काम पर कुछ जावास्क्रिप्ट है

+1

दिलचस्प। मैं यह समझने के लिए बहुत लंबी अवधि में जा रहा हूं कि * किसी भी साइट को कैसे रोकें, कभी भी ऐसा करने से। किफायत से इस्तेमाल करो। – Ricky

उत्तर

8

यह एक अच्छा प्रभाव है, तो आप पटकथा कि (फ़ायरफ़ॉक्स में) Firebug का उपयोग कर प्रति पर निकाल दिया जाता है देख सकते हैं।

फ़ायरबग शुरू करें और पृष्ठ लोड करें, स्पष्ट चुनें (क्योंकि पृष्ठ बहुत सारे AJAX का उपयोग करता है, वहां बहुत जल्दी अनुरोध हैं)। फिर 'सभी' टैब चुनें और प्रतिलिपि बनाने का प्रयास करें। आपको 1x1 पिक्सेल छवि के लिए एक अनुरोध दिखाई देगा, लेकिन यदि आप विवरण देखने के लिए + बटन दबाते हैं, तो आप 'पैराम्स' टैब में देखेंगे कि यह GET अनुरोध आपके अनुरोधित पाठ को 'सामग्री' पैरामीटर के रूप में पास करता है, कुछ के साथ xpath जानकारी है कि क्लिपबोर्ड डोम हेरफेर करने के लिए उपयोग किया जाएगा:

start_node_xpath /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[39]/text() 

end_node_xpath /HTML/BODY[@id='belfast']/DIV[@id='root']/DIV[@id='content']/DIV[@id='mainColumn']/DIV[@id='article']/DIV[5]/P[41]/text() 

@Crimson के रूप में वहाँ क्लिपबोर्ड, like zeroclipboard जो फ्लैश और एक छवि का उपयोग में हेरफेर करने के तरीके हैं ने कहा।

मुझे लगता है कि छवि का उपयोग करके तकनीक को क्लिपबोर्ड को बदलने का अनुरोध प्राप्त होता है।

+0

मुझे आश्चर्य है कि क्या मैंने रास्ते में -1 को उठाया है? फायरबग का उपयोग करने पर स्पष्टीकरण के लिए – amelvin

+1

+1। –

3

आप देखेंगे कि यह तब होता है जब आप कुंजी संयोजन [Ctrl + C] का उपयोग करते हैं और यदि आप टेक्स्ट को हाइलाइट करते हैं और राइट-क्लिक मेनू से प्रतिलिपि नहीं चुनते हैं।

वे बस [Ctrl + C] कीस्ट्रोक फँस रहे हैं।

इसके अलावा, क्लिपबोर्ड डेटा जोड़ने के लिए, इस पोस्ट पर एक नज़र डालें: How do I copy to the clipboard in JavaScript?

+0

सहमत नहीं है। मैं एक्सपी/फ़ायरफ़ॉक्स 3.5.8 का उपयोग कर रहा हूं और यदि मैं हाइलाइट करता हूं, तो राइट-क्लिक करें और प्रतिलिपि चुनें, यह प्रतिलिपि पाठ में परमालिंक को जोड़ती है। – amelvin

1

मैंने हाल ही में वेबसाइटों पर इस "क्लिपबोर्ड अपहरण" का प्रवाह देखा है। thefutoncritic.com, cracked.com ... यदि आप एडब्लॉक का उपयोग करते हैं तो बस "मैन्युअल प्रविष्टियों" सूची में जाएं और * पोस्ट-कॉपीपेस्ट.जेएस * इसमें जोड़ें। इससे साइट्स को आपके क्लिपबोर्ड पर अपने विज्ञापन जोड़ने से रोका जाना चाहिए।

0

एक समाचार साइट मैं उपयोग इस पर जाएँ प्रतिलिपि चयन में "स्रोत" जोड़ने के लिए कार्य:

function addLink() { 
    var body_element = document.getElementsByTagName('body')[0]; 
    var selection; 
    selection = window.getSelection(); 
    // change this if you want 
    var pagelink = "<br><br>Fuente: Emol.com - <a href='"+document.location.href+"'>"+document.location.href+"</a><br>"; 
    var copytext = selection + pagelink; 
    var newdiv = document.createElement('div'); 
    newdiv.style.position='absolute'; 
    newdiv.style.left='-99999px'; 
    body_element.appendChild(newdiv); 
    newdiv.innerHTML = copytext; 
    selection.selectAllChildren(newdiv); 
    window.setTimeout(function() { 
     body_element.removeChild(newdiv); 
    },0); 
} 
document.oncopy = addLink; 
संबंधित मुद्दे