2012-03-08 6 views
7

कल्पना करें कि एचटीएमएल क्लाइंट एचटीएमएल और जावास्क्रिप्ट में लिखा गया है। यह हिस्सा काम करता है। लेकिन यह अच्छा होगा अगर उपयोगकर्ता क्लिपबोर्ड में "लिस्टिंग की प्रतिलिपि बना सकता है"। यह पता चला है कि जेएस में क्लिपबोर्ड सामान इतना आसान नहीं है (इसके अलावा, लिस्टिंग बड़ी हो सकती है)। जेनरेटेड लिस्टिंग के साथ एक विंडो पॉप अप करना बेहतर है, तो उपयोगकर्ता कॉपी 'पेस्ट को चुन सकता है, या पेज को डिस्क पर सहेज सकता है।क्रोम: जावास्क्रिप्ट विंडो.ऑपेन सेव-सक्षम होने के लिए

वर्तमान में मैं कार्य करें:

 
    my_window = window.open("", "Copy List"); 
    my_window.document.write('<pre>\n'+string+'</pre>'); 
    my_window.document.close(); 

कौन सा काम करता है। मुझे एक नया टैब मिलता है, और "स्ट्रिंग" में जेनरेट की गई सूची अच्छी तरह से प्रदर्शित होती है।

लेकिन क्रोम "पृष्ठ सहेजें" विकल्प को अक्षम/मिटा देता है। यह अच्छा होगा अगर उपयोगकर्ता पृष्ठ (एचटीएमएल या txt) को बचा सकता है। विंडो/टैब खोलने के लिए किस जादू की आवश्यकता है और उन्हें सामग्री को सहेजने दें?

चूंकि हम वेबस्केट्स (key1/key2) का उपयोग करते हैं, यह केवल क्रोम में काम करता है, अन्य ब्राउज़र की आवश्यकता नहीं होती है।

+0

सुंदर बहुत हर ब्राउज़र का समर्थन करता है वेब सॉकेट; क्रॉस-ब्राउज़र समर्थन ड्रॉप करने के लिए आपको बेहतर बहाने की आवश्यकता होगी। http://caniuse.com/#feat=websockets – Domenic

+0

यह प्रोटोकॉल के संस्करण के बारे में अधिक है। चूंकि मैंने जेएस कोड के लिए एफएक्सपी.ऑन इंजन पर वेबस्केट पोर्ट लागू किया है, इसलिए मैंने केवल नए प्रोटोकॉल को लागू किया है, जो सेक-वेबसॉकेट-की और सेक-वेबसॉकेट-स्वीकृति का उपयोग करता है। वर्तमान में (कम से कम, जब हमने दिसंबर में कोड शुरू किया) जिसका मतलब केवल क्रोम था। Key1/key2 का उपयोग करने वाले सभी अन्य ब्राउज़रों, या अक्षम थे। मैं पुराने प्रोटोकॉल को भी लागू कर सकता था, लेकिन जैसा कि इसे चरणबद्ध किया जा रहा था, मुझे लगा कि प्रतीक्षा करना आसान था। – lundman

+0

मैंने फिर से फ़ायरफ़ॉक्स का परीक्षण किया, अभी भी पुराना प्रोटोकॉल। लेकिन फ़ायरफ़ॉक्स-बीटा 5 ने उन्हें अद्यतन किया है, और वास्तव में FXP.One के साथ अच्छी तरह से काम करता है। तो, मुझे लगता है कि यदि आप बीटा चलाते हैं, तो दो ब्राउज़रों के लिए एक समाधान अच्छा होगा। – lundman

उत्तर

3

रास्ता इस तथ्य के बाद, लेकिन आप इस के लिए एक डेटा URI का उपयोग कर सकते हैं:

window.open("data:text/plain;base64,"+btoa(theCode))

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