7

मैंने एक greasemonkey स्क्रिप्ट लिखना शुरू कर दिया है, और Greasemonkey स्क्रिप्ट में स्थानीय स्टोरेज प्रदर्शन करने में समस्या का सामना कर रहा है। जीएम में स्थानीय स्टोरेज को समझने का एकमात्र तरीका newElement.innerHTML डीओएम संपत्ति में जावास्क्रिप्ट का एक और उदाहरण बना रहा है, लेकिन मेरे बाकी चर संभव नहीं हैं।Greasemonkey में स्थानीय स्टोरेज

कोई विचार? यहां Greasemonkey कोड खंड है जिस पर मैं काम कर रहा हूं।

 var testHref = anchorTag[i].href; 
    var testHTML = anchorTag[i].innerHTML; 
    var patHref = /item\?id=[0-9]*/g; 
    var patCaptureId = /item\?id=([0-9]*)/g; 
    var testId = patCaptureId.exec(testHref); 
    var patHTML = /[0-9]* comment(|s)/g; 
    var patHTML2 = /discuss/g; 
    if(patHref.test(testHref) && !patHTML.test(testHTML) && !patHTML2.test(testHTML)) 
    { 
     newElement = document.createElement('span'); 
     newElement.style.color = "#FF0000"; 
     newElement.innerHTML = "<a href=\"javascript:localStorage.setItem('one', 'rishabhVerma'); var test = localStorage.getItem('one'); console.log(test);\"> B</a>"; 
     anchorTag[i].parentNode.insertBefore(newElement, anchorTag[i].nextSibling); 
    } 
    i++; 

उत्तर

7

हम्म, unsafeWindow.localStorage काम नहीं करता मुझे लगता है? मुझे पता है कि स्थानीय स्टोरेज पाने के लिए क्रोम के लिए कोई समस्या नहीं है, कभी भी ईमानदार होने के लिए फ़ायरफ़ॉक्स पर कोशिश नहीं की।

+4

मैं सिर्फ इस्तेमाल किया 'एक Greasemonkey स्क्रिप्ट (मैक पर Firefox 3.6 में) में unsafeWindow.localStorage' और कहा कि अच्छा काम करने लगता है। –

+1

कृपया ध्यान दें, कि असुरक्षित विन्डो का उपयोग वेबपृष्ठों को पहचानने और संभावित रूप से greasemonkey को कम करने की अनुमति देगा, अगर यह उन घटनाओं को फंसाने में सक्षम है जो असुरक्षित विन्डो ऑब्जेक्ट कहलाते हैं। यह जानकारी सत्यापित की जा सकती है [यहां] (https://www.safaribooksonline.com/library/view/greasemonkey-hacks/0596101651/ch01s13.html) – CoasterChris

9

यदि आपको केवल मूल्यों को स्टोर करने की आवश्यकता है तो आप GM_getValue() और GM_setValue() फ़ंक्शंस का उपयोग करके क्लासिक Greasemonkey तरीका जा सकते हैं जो बहुत अच्छी तरह से काम करता है।

+0

@ बासीलेव्स दूसरी तरफ, डेटा की बहुत बड़ी मात्रा _will_ कारण स्थानीय स्तर पर अपवादों को थूकने के लिए ;-) –

+0

@JanDvorak डेटा मात्राओं के बारे में मेरी टिप्पणी अब प्रासंगिक नहीं है - Greasemonkey [मूल्यों को स्टोर करने के लिए SQLite का उपयोग करता है] (http://stackoverflow.com/a/20976405/125562)। – Basilevs

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