2012-11-29 17 views
7

मैं वेबसाइटों से एचटीएमएल कॉपी/पेस्ट करना चाहता हूं और उन्हें mysql डेटाबेस में स्टोर करना चाहता हूं। ऐसा करने के लिए मैंने सीकेएडिटर की जांच की है जो मुझे HTML, यहां तक ​​कि शब्द दस्तावेज़ पेस्ट करने की अनुमति देता है और यह इसके लिए एचटीएमएल कोड उत्पन्न करता है। चूंकि मैं चाहता हूं कि चिपकने वाला डेटा एचटीएमएल के रूप में "जेनरेट" करना है, सीकेईडिटर जैसे पूर्ण वाईसवीग संपादक का उपयोग करने के बजाय, मैं चिपकने वाले डेटा को एचटीएमएल टैग और स्वरूपण में परिवर्तित करने के लिए कुछ कोड (शायद jquery के साथ) लिखना चाहता हूं।संपादकों को टेक्स्टरेरा पर डेटा को अमीर wysiwyg संपादकों में html- जैसा बनाता है?

इस कार्यक्षमता को प्राप्त करने के लिए, ये ऑनलाइन संपादक क्या करते हैं? वे क्लिपबोर्ड डेटा को एचटीएमएल कोड में कैसे परिवर्तित करते हैं? मुझे केवल टेक्स्ट क्यों मिलता है जब मैं HTML स्वरूपित टेक्स्ट या divs या बटन को इस textarea पर यहां पेस्ट करता हूं और छवियों और wysiwyg संपादकों पर सही ढंग से divs आकार दिया?

क्या संपादकों क्लिपबोर्ड डेटा तक पहुंचते हैं और इसे कुशल बनाते हैं? क्या क्लिपबोर्ड एक व्यवस्थित ढंग से स्वरूपण डेटा को सहेजता है जो "सीकेएडिटर" या दूसरों को इसका उपयोग करने की इजाजत देता है?

क्या यह jQuery के साथ किया जा सकता है? या क्या हमें सर्वर-साइड कोड भी चाहिए?

यदि आप इस विषय पर कुछ प्रकाश डाल सकते हैं तो मैं इसकी सराहना करता हूं। मैं केवल विधि जानना चाहता हूं ताकि मैं इसके लिए उपयुक्त कोड लिख सकूं।

संदर्भ के लिए: http://ckeditor.com/demo

+0

मुझे लगता है कि आप एचटीएमएल को 'contenteditable = "true" के साथ तत्व में पेस्ट कर सकते हैं और उसमें से HTML को उसमें से कुछ स्क्रिप्ट के साथ प्राप्त कर सकते हैं। –

उत्तर

5

यहाँ एक कच्चे डेमो जो क्रोम, IE9 और सफारी में काम करता है: http://jsfiddle.net/SN6PQ/2/

<div contenteditable="true" id="paste-target">Paste Here</div>​ 

$(function(){ 
    $("#paste-target").on("paste", function(){ 
     // delay, or else innerHTML won't be updated 
     setTimeout(function(){ 

      // option 1 - for pasting text that looks like HTML (e.g. a code snippet) 
      alert($("#paste-target").text()); 

      // option 2 - for pasting actual HTML (e.g. select a webpage and paste it) 
      alert($("#paste-target").html()); 
     },100); 
    });   
});​ 

अगर यह है कि तुम क्या करने के बाद कर रहे हैं, लेकिन यह पेस्ट पर HTML अलर्ट सुनिश्चित नहीं हैं। ध्यान रखें कि एक सामग्री संपादन योग्य तत्व पेस्ट पर मार्कअप बदल सकता है।

+1

धन्यवाद, यह वही है जो मैं बाद में था ... इसलिए jquery के लिए एक पेस्ट ईवेंट है ... सबसे दिलचस्प! – Logan

+0

खुशी है कि यह काम करता है। पेस्टिंग के आस-पास कई प्रकार के प्रश्न हैं, यदि आप मेरा उदाहरण परिशोधित करना चाहते हैं, उदा। http://stackoverflow.com/questions/686995/jquery-catch-paste-input?lq=1 –

+0

आह, मैंने वास्तव में उस पोस्ट को देखा है जब मैं शोध कर रहा था, लेकिन यह समझने में असफल रहा कि यह HTML के रूप में भी चिपकाया गया है। बीटीडब्ल्यू मैंने जावास्क्रिप्ट के लिए पेस्ट इवेंट के लिए संगतता देखी है और यहां यह है: [cutcopypaste] (http://www.quirksmode.org/dom/events/cutcopypaste.html) – Logan