दिलचस्प पोस्ट
कैसे एक सी मैक्रो के मूल्य से एक चार तार बनाने के लिए? सूची में विशिष्ट मूल्यों की एक सूची प्राप्त करें संपत्ति फ़ोल्डर से एक पीडीएफ फाइल पढ़ें क्या "एक मध्यवर्ती परिणाम कैश किया जा रहा है" मतलब है? पथ। रिश्तेदार पथ स्ट्रिंग्स के साथ परिपूर्ण सुंदर 2 डी पायथन सूची मुद्रित करें पायथन में एक स्क्रिप्ट से स्टडआउट कैप्चर करें आईफ़ोन: यूट्यूबटाइम के पृष्ठभूमि कूलर को कैसे सेट करें बटन टाइप करें UIButtonTypeCustom सी # आवेदन में वैश्विक कुंजीपटल कैप्चर बहुरूपता का वर्णन करने की कोशिश करें जितना आसान हो सकता है एक नया संग्रह करने के लिए स्ट्रीम करने के लिए संग्रह WebView में फ़ॉर्म फ़ील्ड टैप करना नरम कीबोर्ड नहीं दिखाती पीडीएफ फाइल को HTML लिंक में डाउनलोड करने योग्य कैसे बनाऊं? एकाधिक अपाचे सर्वर पर एक एकल PHP5 सत्र का प्रबंधन कैसे करें? सामान्य MATLAB एरे के लिए सौदा की तरह कुछ भी है?

सभी ब्राउज़रों के लिए Object.watch ()?

मैं परिवर्तनों के लिए ऑब्जेक्ट या चर की निगरानी करने के लिए एक आसान तरीका की तलाश कर रहा था, और मुझे ऑब्जेक्ट। Object.watch() मिला, जो मोज़िला ब्राउज़र में समर्थित है, लेकिन IE नहीं है इसलिए मैंने चारों ओर खोजना शुरू कर दिया है कि क्या किसी ने किसी प्रकार के बराबर लिखा है।

केवल एक चीज के बारे में मुझे पता चल गया है जो jQuery प्लगइन है , लेकिन मुझे यकीन नहीं है कि यह जाने का सबसे अच्छा तरीका है। मैं निश्चित रूप से अपनी परियोजनाओं में से अधिकांश में jQuery का उपयोग करता हूं, इसलिए मैं jQuery के पहलू के बारे में चिंतित नहीं हूं …

वैसे भी, सवाल: क्या कोई मुझे उस jQuery प्लगइन का एक काम उदाहरण दिखा सकता है? मुझे यह काम करने में समस्या हो रही है …

या, क्या कोई बेहतर विकल्प जानता है जो क्रॉस ब्राउज़र काम करेगा?

उत्तर के बाद अपडेट करें :

प्रतिक्रियाओं के लिए सभी का धन्यवाद! मैंने यहां पोस्ट किए गए कोड की कोशिश की: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html

लेकिन मैं इसे IE के साथ काम करने के लिए प्रतीत नहीं कर सकता। नीचे दिए गए कोड फ़ायरफ़ॉक्स में ठीक काम करता है, लेकिन IE में कुछ नहीं करता है फ़ायरफ़ॉक्स में, हर बार watcher.status बदल जाता है,। में document.write() watcher.watch() कहा जाता है और आप पृष्ठ पर आउटपुट देख सकते हैं। IE में, ऐसा नहीं होता है, लेकिन मैं देख सकता हूँ कि watcher.status मूल्य को अद्यतन कर रहा है, क्योंकि अंतिम document.write() कॉल सही मान (दोनों आईई और एफएफ में) दिखाता है लेकिन, अगर कॉलबैक फ़ंक्शन नहीं बुलाया जाता है, तो यह बिल्कुल व्यर्थ है … 🙂

क्या मैं कुछ भूल रहा हूँ?

 var options = {'status': 'no status'}, watcher = createWatcher(options); watcher.watch("status", function(prop, oldValue, newValue) { document.write("old: " + oldValue + ", new: " + newValue + "<br>"); return newValue; }); watcher.status = 'asdf'; watcher.status = '1234'; document.write(watcher.status + "<br>"); 

Solutions Collecting From Web of "सभी ब्राउज़रों के लिए Object.watch ()?"

(क्रॉस-पोस्टिंग के लिए क्षमा करें, लेकिन मैंने इस तरह के एक प्रश्न के उत्तर दिए थे ठीक काम करता है)

मैंने एक छोटा सा ऑब्जेक्ट बनाया है। थोड़ी देर पहले इस के लिए वॉच शिम । यह IE8, सफारी, क्रोम, फ़ायरफ़ॉक्स, ओपेरा आदि में काम करता है।

उस प्लगइन में टाइमर / अंतराल का उपयोग केवल एक ऑब्जेक्ट पर परिवर्तन की बार-बार जांच करने के लिए होता है। हो सकता है कि काफी अच्छा है लेकिन व्यक्तिगत तौर पर मैं पर्यवेक्षक के रूप में अधिक सीधा संपर्क करना चाहता हूं।

यहां आईई से watch / unwatch लाने का प्रयास है: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html

यह पर्यवेक्षकों को जोड़ने के फ़ायरफ़ॉक्स से वाक्य रचना को बदलता है के बजाय :

 var obj = {foo:'bar'}; obj.watch('foo', fooChanged); 

तुम करो:

 var obj = {foo:'bar'}; var watcher = createWatcher(obj); watcher.watch('foo', fooChanged); 

मिठाई के रूप में नहीं, बल्कि एक पर्यवेक्षक के रूप में आपको तुरंत सूचित किया जाता है

देर से 2015 के लिए अद्यतन

Object.observe () अब रद्द कर दिया गया है। क्षमा करें लोग!

2015 के लिए अद्यतन

ES7 से Object.observe () का उपयोग करें

यहाँ एक polyfill है

ध्यान दें कि क्रोम 36 और उच्चतर में आप Object.observe भी उपयोग कर सकते हैं। यह वास्तव में एक भविष्य के ECMAScript मानक का एक हिस्सा है, और नहीं एक ब्राउज़र-विशिष्ट विशेषता जैसे मोज़िला के Object.watch

ऑब्जेक्ट। ऑब्जेक्ट गुणों पर कार्य करता है, लेकिन ऑब्जेक्ट की तुलना में बहुत अधिक प्रदर्शनकारी है। Object.watch (जो डीबगिंग प्रयोजनों के लिए है, उत्पादन का उपयोग नहीं है)।

 var options = {}; Object.observe(options, function(changes) { console.log(changes); }); options.foo = 'bar'; 

आप Object.defineProperty का उपयोग कर सकते हैं।

foo में संपत्ति bar

 Object.definedProperty(foo, "bar", { get: function (val){ //some code to watch the getter }, set: function (val) { //some code to watch the setter } }) 

मैंने दो लोगों को पाया जो इस समस्या का समाधान करने का दावा करते हैं:

Crossbrowser ऑब्जेक्ट घड़ी (आईई, ओपेरा, सफारी के लिए समर्थन का दावा)

आईई के लिए प्रोटोटाइप.जेएस के उपयोग के साथ आईईएस फंक्शन देखें (? ओपेरा, सफारी?)

मुझे यह भी लगता है कि अभी सबसे अच्छा उपाय वॉच का उपयोग करना है। जेएस, यहां एक अच्छी ट्यूटोरियल ढूंढें: जवास्क्रिप्ट में ऑब्जेक्ट या ऑर्गे परिवर्तनों के लिए सुनो / देखें (जावास्क्रिप्ट ऑब्जेक्ट पर संपत्ति बदल दी गई घटना)