2012-11-30 21 views
21

मैं वितरण के लिए जेएस/PHP प्लगइन बना रहा हूं। मैं इसे इस रूप में स्थापित करने के लिए के रूप में आसान होना चाहते हैं:मैं जावास्क्रिप्ट में विंडो आकार बदलने वाले ईवेंट श्रोता को कैसे संलग्न कर सकता हूं?

<HTML> 
<HEAD> 
<TITLE>Testing my Plugin</TITLE> 
<?php 
    include 'path/to/myPlugin.php'; 
    echo getMyPluginHeadContent(); 
?> 
</HEAD> 
<BODY> 
<?php 
    echo getMyPluginContent("Arguments will go here"); 
?> 
</BODY> 
</HTML> 

हालांकि, मैं इस प्लगइन संलग्न करने के लिए एक खिड़की श्रोता आकार बदलने अधिभावी window.onresize बिना चाहते हैं, मामले में किसी भी अन्य लिपियों वह भी के उपयोग की आवश्यकता नहीं है वह विधि क्या कोई जावास्क्रिप्ट कमांड है document.addEventListener("resize", myResizeMethod, true);? मुझे पता है कि यह नहीं है, क्योंकि यह काम नहीं कर रहा है, और एमडीएन और डब्ल्यू 3 सी addEventListener के तर्कों के बारे में बहुत अस्पष्ट हैं।

मुझे जवाब नहीं चाहिए कि मुझे window.onresize = myResizeMethod या <BODY ONRESIZE="myResizeMethod"> का उपयोग करने के लिए कहा जाए, क्योंकि ये प्लगइन-अनुकूल नहीं हैं।

+0

में घटनाओं को हटा सकते हैं आप विंडो में जोड़ने के लिए कोशिश कर रहे हैं के बाद से, आप 'की कोशिश की है window.addEventListener',: यहाँ एक उदाहरण है? – Kyle

+2

सुंदर बहुत किसी भी .on = एक .addEventListener में बदल सकता है (, ) – bhamlin

+0

@bhamlin: व्यावहारिक टिप्पणी, धन्यवाद। –

उत्तर

44

के बाद से आप विंडो के आकार पर इस समारोह कॉल करने के लिए कोशिश कर रहे हैं, तो आप विंडो पर और दस्तावेज़ के लिए नहीं समारोह बाध्य करने के लिए चाहते हैं। आईई के संस्करणों का समर्थन करने के लिए जो 9 से कम हैं, आप attachEvent का उपयोग करना चाहेंगे। कृपया ध्यान दें कि attachEvent आपको on कीवर्ड निर्दिष्ट करने की आवश्यकता है।

if(window.attachEvent) { 
    window.attachEvent('onresize', function() { 
     alert('attachEvent - resize'); 
    }); 
} 
else if(window.addEventListener) { 
    window.addEventListener('resize', function() { 
     console.log('addEventListener - resize'); 
    }, true); 
} 
else { 
    //The browser does not support Javascript event binding 
} 

इसी तरह आप उसी तरह

if(window.detachEvent) { 
    window.detachEvent('onresize', theFunction); 
} 
else if(window.removeEventListener) { 
    window.removeEventListener('resize', theFunction); 
} 
else { 
    //The browser does not support Javascript event binding 
} 
+6

+1। –

+0

एक भूलने के अलावा ');' आपके उदाहरण कोड में, यह सही है! धन्यवाद! – Supuhstar

+0

@Supuhstar ओह, कोड तय किया। खुशी है कि आप इसे काम करने में सक्षम थे। – Kyle

17

आप दस्तावेज़ का आकार बदल नहीं सकते लेकिन विंडो। यह काम करता है:

window.addEventListener("resize", function(){console.log('resize!')}, true); 
+2

इसके अतिरिक्त, आप IE के संस्करणों के लिए 'attachEvent' का उपयोग करना चाहेंगे <9. – Kyle

+0

@ केली मुझे नहीं पता था कि (मेरी साइटें या तो IE8 संगत या jquery आधारित नहीं हैं)। अपना खुद का जवाब बनाने के लिए स्वतंत्र महसूस करें। मैं आपकी टिप्पणी में देखता हूं कि आप विंडो बनाम दस्तावेज़ के लिए भी जानते थे। –

+0

धन्यवाद। मैं एक उदाहरण के साथ एक मिनट में एक जवाब पोस्ट करेंगे। – Kyle

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

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