2010-11-26 8 views
6

स्थिति: - मैंने एक स्थापना सेटअप (स्थानीय) बनाया है जो एक यूआरएल देता है जैसे: - ved.test.com जिसे आईपी 11.22.33.44 में मैप किया गया है। इस प्रकार स्थापना के बाद वेब एप्लिकेशन को सुलभ बनाने के लिए, उपयोगकर्ता को मेजबान फ़ाइल में "C: \ WINNT \ system32 \ drivers \ etc" निर्देशिका के तहत स्पष्ट रूप से प्रविष्टि करना है।फ़ायरफ़ॉक्स में, जावास्क्रिप्ट का उपयोग कर फ़ाइल में लिखें?

दृष्टिकोण: - स्थापना अनुप्रयोग पूरा होने के बाद, एप्लिकेशन जावास्क्रिप्ट का उपयोग कर फ़ाइल लिखता है।

समस्या: - जावास्क्रिप्ट का उपयोग कर एक फ़ाइल लिखना आईई में समर्थित है। मुझे फ़ायरफ़ॉक्स के लिए समाधान की आवश्यकता है। कोड का इस्तेमाल किया: -

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Write To A File</title> 
<script language="javascript"> 
    function WriteToFile() 
    { 
    /* The below statement is supported in IE only */ 
    var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var s = fso.CreateTextFile("C:\\Test.txt", true); 
    s.WriteLine('IE Supports Me!'); 
    s.Close(); 
    } 
</script> 
</head> 
    <body onLoad="WriteToFile()"> 
</body> 
</html> 

भी अतः में लिंक संदर्भित है: - How to read and write into file using JavaScript

कृपया एक समाधान का समर्थन करता है कि फ़ायरफ़ॉक्स ब्राउज़र में Javascript कि चलाता है का उपयोग कर एक फ़ाइल लिख प्रदान करते हैं।

अग्रिम में धन्यवाद।

+1

आपका एसओ-लिंक प्रश्न का उत्तर देता है। ब्राउज़र में यह संभव नहीं है। – jwueller

+2

आपने अभी मेरा सी: \ Test.txt ओवरराइट किया है! गंभीरता से, उपयोगकर्ता के फाइल सिस्टम को लिखने के लिए कोई वेबपृष्ठ अनुमति नहीं है। और "% SystemRoot% \ system32 \ drivers \ etc \ hosts" के साथ गड़बड़ाना स्पष्ट रूप से दुर्भावनापूर्ण व्यवहार है। –

+0

@ user205376 - हां, मैं मेजबान फ़ाइल मैनिपुलेशन के बारे में जानता हूं, बेहतर अनुभव के लिए मेरे ऐप उपयोगकर्ताओं की सहायता कर रहा था। इस प्रकार इस स्थिति में आया। – vedvrat13

उत्तर

14

आप अपेक्षाकृत स्पष्ट सुरक्षा कारणों से ऐसा नहीं कर सकते हैं। जावास्क्रिप्ट को फाइल सिस्टम तक कोई पहुंच नहीं है ... आईई में यह जावास्क्रिप्ट नहीं है, लेकिन ActiveX ऐसा कर रहा है ... यह सिर्फ एक जावास्क्रिप्ट एपीआई खुलासा है।

समस्या नहीं है कि फ़ायरफ़ॉक्स नहीं करता है यह ... यह कि IE कभी, यह :)

+3

मुझे आश्चर्य है कि मैं आईई से भी घृणा करने में सक्षम हूं _more_। – jwueller

+0

आईई बेहतर है, क्योंकि सांख्यिकीय डेटा कहता है कि 'mozilla.com' के अधिकांश उपयोगकर्ता IE का उपयोग करते हैं ... – khachik

+0

@Nick आपके उत्तर के लिए धन्यवाद। यदि एफएफ में व्यवहार्य नहीं है तो कृपया मुझे एक अलग दृष्टिकोण सुझाएं। – vedvrat13

3

आप create your own Firefox extension करने की आवश्यकता होगी अनुमति दी क्योंकि पढ़ने/स्थानीय फ़ाइलों लेखन एक विशेषाधिकार प्राप्त आपरेशन माना जाता है।

XPCOM का उपयोग करके फ़ाइलों को पढ़ना/लिखना: https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O। यह आपके वेब पेज से नहीं बल्कि केवल विशेषाधिकार प्राप्त कोड जैसे एक्सटेंशन से काम करेगा।

+0

आपके उत्तर के लिए धन्यवाद। इसलिए एक्सटेंशन चलाने के लिए, उपयोगकर्ता को इन एक्सटेंशन को इंस्टॉल करने की भी आवश्यकता है? – vedvrat13

+0

@UIDreamer: हां। उपयोगकर्ता को विंडो के शीर्ष पर पीले रंग की पट्टी पर क्लिक करना होगा, चेतावनी संवाद पर इंस्टॉल बटन पर क्लिक करें, और फिर फ़ायरफ़ॉक्स को पुनरारंभ करें। – PleaseStand

1

फ़ायरफ़ॉक्स में ऐसा करने के बारे में जानकारी के लिए https://developer.mozilla.org/en-US/docs/Code_snippets/File_I_O देखें।

var file = Components.classes["@mozilla.org/file/local;1"]. 
     createInstance(Components.interfaces.nsILocalFile); 
file.initWithPath("/home"); 
1

फ़ायरफ़ॉक्स आप एक विशिष्ट पथ के लिए कड़ी मेहनत से कोड नहीं करते हैं, तो आप इसे जो इसे पथ के लिए बचा सकते हैं उपयोगकर्ता के लिए एक संवाद पेश करने के लिए प्राप्त कर सकते हैं:

यह कुछ इस तरह दिखता मैन्युअल रूप से, हालांकि उन्हें फ़ाइल प्रकार को बदलने की भी आवश्यकता होगी (इसलिए मुझे पता है कि यह बहुत व्यावहारिक नहीं है): https://stackoverflow.com/a/13696029/271577। एक ही पोस्ट यह भी दिखाता है कि आप फ़ाइल टैब को एक नए टैब में कैसे खोल सकते हैं जहां उपयोगकर्ता ब्राउज़र की सहेजने वाली सुविधाओं का उपयोग मैन्युअल रूप से फ़ाइल को सहेजने के लिए कर सकता है (इस दृष्टिकोण का लाभ यह है कि फ़ाइल एक्सटेंशन डिफ़ॉल्ट रूप से .txt हो सकता है (और यह कुछ परिस्थितियों में अच्छा हो सकता है कि यह उपयोगकर्ता को सामग्री का पूर्वावलोकन देता है))।

संयोग से, हालांकि देशी तरीका फ़ायरफ़ॉक्स एचटीएमएल उपयोगकर्ता की अनुमति के साथ विशेषाधिकार हासिल करने के लिए अनुमति देने के लिए किया करते थे, enablePrivilege अब out the door है, मैं एक ऐड-ऑन AsYouWish कहा जाता है जो (जैसे डेस्कटॉप फ़ाइल लेखन के रूप में) के लिए विशेषाधिकार प्राप्त उपयोग की अनुमति देता है पर काम कर रहा हूँ प्रति साइट के आधार पर उपयोगकर्ता से अनुरोध किया जाना चाहिए, और हालांकि मुझे उम्मीद है कि यह अंततः इसे फ़ायरफ़ॉक्स (श्वेतसूची की आवश्यकता) में बना सकता है, वर्तमान में इसे ऐड-ऑन की स्थापना की आवश्यकता होती है (और यह अभी भी अल्फा/बीटा में है, अंतिम रूप देने या काम करने के लिए कई चीजों के साथ, सबसे महत्वपूर्ण रूप से https में मैन-इन-द-बीच हमलों से बचने के लिए https का उपयोग करने की आवश्यकता को लागू करना)।यह वर्तमान में एक एपीआई का उपयोग करता है जो मुझे लगता है कि भविष्य में अन्य ब्राउज़रों के साथ संभावित रूप से काम कर सकता है, यह उपयोगकर्ता को सटीक विशेषाधिकारों के बारे में सूचित करता है, और डेवलपर्स को हर बार एक नया ऐड-ऑन लिखने की आवश्यकता नहीं होती है जब वे चाहते हैं साइट अनुरोध साइट से विशेषाधिकार प्राप्त पहुंच।

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