मैं iframe के भीतर से FancyBox को बंद करने की कोशिश कर रहा हूं, लेकिन parent.$
हमेशा undefined
है।
<script type='text/javascript'
src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'>
</script>
<script type="text/javascript">
jQuery(document).ready(function($){
(function($) {
$.fn.closeFancyBox = function() {
$(this).click(function() {
parent.$.fancybox.close();
});
};
})(jQuery);
$('#cancel').closeFancyBox();
});
});
</script>
ठीक parent.$.fancybox.close();
alert('clicked');
साथ काम करता है जगह: यह मेरा iframe जावास्क्रिप्ट है। मुझे समझ में नहीं आता कि parent.$
undefined
है जब iframe एक ही डोमेन में है।
मैं वर्डप्रेस 2.9.1 का उपयोग कर रहा हूँ, Wordpress के लिए FancyBox प्लगइन के साथ।
- मुख्य पृष्ठ:
//server.local/web/test/index.php
- आइफ्रेम पेज:
//server.local/web/test/wp-content/plugins/wp-test/test.htm
इन url के पहले मुख्य पृष्ठ है, दूसरी iframe पृष्ठ है; server.local
मेरा होम टेस्ट सर्वर है।
कोई विचार? यदि यह सहायक होगा तो मैं पूरे स्रोत को पेस्टबिन कर सकता हूं।
क्षमा करें, कहा जाना चाहिए था कि मैं इस के बारे में पता कर रहा हूँ; जेएस मैं शामिल एक स्निपेट था। मैंने इसे प्रतिबिंबित करने के लिए अपना प्रश्न संपादित कर लिया है - $ साधन पास करने के लिए मुझे 'jQuery' का उपयोग करने की आवश्यकता नहीं है। – Aleksandr
@ अलेक्ज़ेंडर ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' वास्तव में, आप 'iframe' में jQuery का एक पूरी तरह से अलग उदाहरण शामिल हैं। यदि आपने देखा कि आपने जो लिखा है, तो आप '$' पास करते हैं, लेकिन संदर्भ 'माता-पिता' $ '। ऐसा लगता है कि आपके पास 'var a = 1 है; चेतावनी (obj.a); 'आप उम्मीद नहीं करेंगे कि दो आइटम एक ही मान को संदर्भित करें जब तक कोड में कोई असाइनमेंट न हो। –
आप सही हैं, यह समझ में आता है। हालांकि, निम्न कोड का उपयोग करके: 'jQuery (' # cancel ')। क्लिक करें (function() {parent.jQuery.fancybox.close();}); ' मुझे अभी भी फायरबग में' अपरिभाषित 'त्रुटियां मिलती हैं:' पैरेंट। jQuery.fancybox अपरिभाषित है '। क्या आपको कोई विचार है कि यह क्यों हो सकता है? आपकी मदद के लिए धन्यवाद! मैं जावास्क्रिप्ट और सामान्य रूप से कोडिंग के लिए अभी भी बहुत नया हूं। – Aleksandr