मैं Proxy
objectImage
को गुणों को फँसाने के लिए कोशिश कर रहा हूं लेकिन एक खाली हैंडलर के साथ भी मुझे एक त्रुटि संदेश मिलता है।प्रॉक्सी ऑब्जेक्ट को डीओएम में जोड़ा नहीं जा सकता है (जाल या तो ट्रिगर नहीं करता है)
TypeError: Argument 1 of Node.appendChild does not implement interface Node.
प्रॉक्सी ऑब्जेक्ट लक्ष्य वस्तु के रूप में कार्य करने का अनुमान है इसलिए यह मुझे थोड़ा परेशान करता है। जहां तक मैं समझता हूं कि आपको DOM nodes के साथ-साथ (?) के साथ ऐसा करने में सक्षम होना चाहिए।
इसके अलावा: मैं छवि लोड करने शुरू नहीं कर सकते और onload
हैंडलर शुरू हो रहा है जब src
संपत्ति की स्थापना की है।
मुझे प्रॉक्सी का उपयोग कैसे करना चाहिए ताकि मैं "src" प्रॉपर्टी के लिए "ले लो" कर सकता हूं और अन्यथा यह नियमित छवि ऑब्जेक्ट की तरह कार्य कर सकता है?
मेरे कोड
'use strict';
//--- normal image use ---
var imgNormal = new Image();
imgNormal.onload = function(){
console.log('Normal loaded OK');
document.body.appendChild(imgNormal);
};
imgNormal.src = 'https://i.imgur.com/zn7O7QWb.jpg';
//--- proxy image ---
var imgProxy = new Proxy(Image, { // I also tried with 'new Image()' and HTMLImageElement
set: function(a,b,c,d){
console.log('set '+b);
return Reflect.set(a,b,c,d);
}
});
imgProxy.onload = function(){
console.log('Proxy loaded OK');
document.body.appendChild(imgProxy);
};
imgProxy.src = 'https://i.imgur.com/zn7O7QWb.jpg';
document.body.appendChild(imgProxy); // double-up to demo error
अद्यतन: धन्यवाद @Harangue करने के लिए! " अब मैं गुणों की सेटिंग को फंसाने में असमर्थ हूं। यह जाल पूरी तरह से उपेक्षा करने लगते हैं - उदाहरण:new
" (बाह ..) का उपयोग करके निश्चित रूप से प्रॉक्सी ऑब्जेक्ट जीवन में आया लेकिन
var proxy = new Proxy(Image, {
set: function(a,b,c,d){
console.log('set '+b); // doesn't show
return Reflect.set(a,b,c,d);
}
});
var imgProxy = new proxy();
imgProxy.onload = function(){
console.log('Proxy loaded OK');
document.body.appendChild(imgProxy);
};
imgProxy.src = 'https://i.imgur.com/zn7O7QWb.jpg';
मैं कैसे जाल संपत्ति एक वैध प्रॉक्सी का प्रयोग सेटिंग कर सकते हैं?
अद्यतन 2 दूसरी ओर - नई प्रॉक्सी के साथ new
का उपयोग कर केवल मूल निर्माता का उपयोग करने लगते हैं। सभी उदाहरण मैं पा सकते हैं नहीं नई का उपयोग करता है:
var myProxy = new Proxy(.., ..); // should suffer
कि new myProxy()
के शीर्ष पर तो का उपयोग केवल मूल निर्माता जो नहीं है मैं के रूप में यह जाल पर ध्यान नहीं देता क्या चाहते हैं उपयोग करने के लिए लग रहे हैं।
var proxy = new Proxy(Image, {}); //should be sufficent??
var proxy2 = new proxy();
console.log(proxy2); //-> says Image (not proxy..)
जाल मेरा पहला प्रयास में काम करने के लिए लग रहे हैं, लेकिन प्रॉक्सी अपेक्षा के अनुरूप व्यवहार नहीं करता है। यह इतना भ्रमित है, और इतना नया है। किसी भी इनपुट के लिए खुश कैसे इन दोनों को हल किया जा सकता है (जाल और व्यवहार)।
जांच करने के लिए आह, हाँ, मैं वास्तव में नए कीवर्ड भूल गए है। लेकिन, अब एक नई समस्या है क्योंकि मैं सेटिंग को फँस नहीं सकता हूं। क्या मैंने यहां एक और चीज़ को नजरअंदाज कर दिया है? मैंने उस मामले के लिए एक नए उदाहरण के साथ उत्तर अद्यतन किया। धन्यवाद! – bjanes
ओटीओएच .. उदाहरणों का अध्ययन करने के बाद यह प्रकट नहीं होता है कि यह प्रॉक्सी का उपयोग करने का एक आम तरीका है। मेरा मतलब है, ऐसा लगता है कि नई प्रॉक्सी (...) पर्याप्त होनी चाहिए। क्या आप "नए" की आवश्यकता के बारे में निश्चित हैं? ऐसा लगता है कि प्रॉक्सी से गुज़रने के बिना छवि के कन्स्ट्रक्टर का उपयोग करना प्रतीत होता है। लेकिन मैं गलत समझ सकता था। :/ – bjanes
@bjanes जब मैं उस कोड का उपयोग करता हूं तो मुझे 'src' सेट होने पर एक कंसोल संदेश मिलता है। क्या आप अलग-अलग व्यवहार की तलाश में हैं? – Harangue