jQuery

2009-10-31 6 views
15

के साथ iframe के अंदर तत्व पर भी हैंडलर को अटैच करें संलग्न करें I iframe के अंदर किसी तत्व को क्लिक ईवेंट हैंडलर कैसे संलग्न कर सकता हूं?jQuery

यहाँ मैं क्या करने की कोशिश की और काम नहीं करता है:

$("#parent iframe").contents().find("a").live("click", function() { 
    alert ("test"); 
    return false; 
}); 

आइफ्रेम एक ही डोमेन पर है।

+1

आपका कोड तब तक काम करेगा जब तक कि मुख्य पृष्ठ और iframe दोनों एक ही डोमेन से आते हैं। –

उत्तर

11

समस्या का पता चला। लाइव आईफ्रेम के अंदर काम नहीं करता है। बांधने के लिए स्विच ठीक काम करता है। बदले में मैन्युअल इवेंट प्रतिनिधिमंडल करेंगे।

+1

ध्यान दें कि यह एकमात्र समस्या से बहुत दूर है जिसे आप एक विंडो/फ्रेम को स्क्रिप्ट करने की कोशिश कर रहे हैं जो jQuery की एक प्रति के साथ है जो एक अलग में रहता है। किसी भी जटिल के लिए, आपको दोनों फ्रेमों में jQuery की प्रतियां लोड करने की आवश्यकता होगी। jQuery को सुविधाजनक सिंगल-विंडो-स्क्रिप्टिंग के लिए अनुकूलित किया गया है, क्रॉस-विंडो-स्क्रिप्टिंग नहीं (जो मूल रूप से अधिक जटिल, jQuery या नहीं है)। – bobince

0

असल में शायद अनुमान के मुताबिक सामग्री एक अलग डोमेन (iFrames के सामान्य उपयोग) से होने की संभावना है। इन लेखों में इसका कारण बताएं:

iframes and cross domain security Cross-Domain Ajax Insecurity

वैकल्पिक रूप से आप (यदि आप इसे पर नियंत्रण है तो) आप उपयोगकर्ताओं को अपने ब्राउज़र सुरक्षा को कम करने के लिए कह सकते हैं iFrame में स्रोत कोड को संशोधित करने की जरूरत है या होगा (संभव हो सकता है एक इंट्रानेट पर, लेकिन तब भी एक अच्छा विचार नहीं है)।

+0

यह एक ही डोमेन पर है, लेकिन मैं यह कहने के लिए धन्यवाद दूंगा कि इसे काम करना चाहिए, मैं इसे फिर से देखूंगा। – Jourkey