दिलचस्प पोस्ट
प्रतिबिंब के साथ एक निजी क्षेत्र खोजें? कनेक्टेड यूएसबी डिवाइसेस की सूची प्राप्त करें एंड्रॉइड: आशय का उपयोग करके सादे पाठ साझा करें (सभी संदेश सेवा के लिए) JSON में मल्टीलाइन तार मैं पायथन में किसी फ़ंक्शन का गहरेकोपी कैसे बना सकता हूं? रीसाइक्लरव्यू ग्रिड लेआउट प्रबंधक: कैसे स्पैन गिनती को स्वत: पता लगा सकता है? कुशलतापूर्वक MySQLDB SScursor का उपयोग कैसे करें? HTTP प्रमाणीकरण को HttpURLConnection का उपयोग कैसे करें? _.each (सूची, इटरेटर, ) में संदर्भ क्या है? IOS के लिए फेसबुक एसडीके 3.1 – आईओएस 6 पर चलता है, लेकिन आईओएस 5.x पर क्रैश करता है ExpressJS: पैरामीटर के साथ एक POST अनुरोध पुनर्निर्देशित कैसे करें के बारे में 'मुख्य (int argc, char * argv )' जीआईटी-पुल के लिए मैं अपना स्थानीय भंडार कैसे उपलब्ध कर सकता हूं? Jquery लोड होने तक स्क्रिप्ट निष्पादन का इंतजार कैसे करें WPF – क्लिक करने योग्य हाइपरलिंक्स

iFrame एसआरसी परिवर्तन घटना का पता लगाने?

मान लें कि IFrame में सामग्री पर कोई नियंत्रण नहीं है, क्या कोई ऐसा तरीका है जिसे मैं माता-पिता पृष्ठ के जरिए एक एसएसीटी परिवर्तन का पता लगा सकता हूं? हो सकता है कुछ प्रकार की ओलोड?

मेरा आखिरी उपाय 1 सेकंड अंतराल परीक्षण करना है यदि iframe src समान है जैसा कि पहले था, लेकिन यह हैकिंग समाधान करना चूसना होगा

मैं jQuery पुस्तकालय का उपयोग कर रहा हूं यदि यह मदद करता है

Solutions Collecting From Web of "iFrame एसआरसी परिवर्तन घटना का पता लगाने?"

आप निम्न उदाहरण के रूप में, onLoad इवेंट का उपयोग करना चाह सकते हैं:

 <iframe src="http://www.google.com/" onLoad="alert('Test');"></iframe> 

जब भी आइफ्रेम में परिवर्तन होता है, अलर्ट पॉप-अप होगा। यह सभी आधुनिक ब्राउज़रों में काम करता है, लेकिन IE5 और शुरुआती ओपेरा जैसे कुछ बहुत पुराने ब्राउज़रों में काम नहीं कर सकता है। ( स्रोत )

यदि आइफ्रेम एक पृष्ठ को माता-पिता के समान डोमेन के भीतर दिखा रहा है , तो आप contentWindow.location साथ स्थान का उपयोग करने में सक्षम होंगे contentWindow.location , जैसा कि निम्न उदाहरण में है:

 <iframe src="/test.html" onLoad="alert(this.contentWindow.location);"></iframe> 
 $('#iframeid').load(function(){ alert('frame has (re)loaded'); }); 

यदि आपके पास इस पृष्ठ पर कोई नियंत्रण नहीं है और किसी प्रकार के बदलाव के लिए देखना चाहते हैं, तो आधुनिक विधि का प्रयोग MutationObserver

इसके उपयोग का एक उदाहरण, एक iframe बदलने के लिए src विशेषता के लिए देख रहा है

 new MutationObserver(function(mutations) { mutations.some(function(mutation) { if (mutation.type === 'attributes' && mutation.attributeName === 'src') { console.log(mutation); console.log('Old src: ', mutation.oldValue); console.log('New src: ', mutation.target.src); return true; } return false; }); }).observe(document.body, { attributes: true, attributeFilter: ['src'], attributeOldValue: true, characterData: false, characterDataOldValue: false, childList: false, subtree: true }); setTimeout(function() { document.getElementsByTagName('iframe')[0].src = 'http://jsfiddle.net/'; }, 3000); 
 <iframe src="http://www.google.com"></iframe> 

Iframe हमेशा पैरेंट पेज को कायम रखता है, आपको यह पता लगाने के लिए उपयोग करना चाहिए कि आप iframe में कौन से पृष्ठ हैं:

HTML कोड:

 <iframe id="iframe" frameborder="0" scrolling="no" onload="resizeIframe(this)" width="100%" src="www.google.com"></iframe> 

जे एस:

  function resizeIframe(obj) { alert(obj.contentWindow.location.pathname); } 

यहां वह विधि है जिसका उपयोग कॉमर्स सेजपे और कॉमर्स पेप्वेज ड्रुपल मॉड्यूल में किया जाता है, जो मूल रूप से document.location.href को अपनी आइफ्रेम को लोड करने से पहले पुराने मूल्य के साथ तुलना करता है।

तो मूल रूप से यह विचार है कि रिक्त पृष्ठ अपने स्वयं के जेएस कोड और छिपे हुए फ़ॉर्म के साथ प्लेसहोल्डर के रूप में लोड करना है। फिर माता पिता जेएस कोड उस छिपे हुए फॉर्म को प्रस्तुत करेंगे जहां इसकी #action बाहरी आईफ्रेम के लिए इंगित करती है। एक बार रीडायरेक्ट / जमा होता है, जो जेएस कोड जो उस पेज पर चल रहा है वह आपके document.location.href बदल सकता है। document.location.href मूल्य परिवर्तन

आईफ़्रैम में जेएस का उदाहरण यहां बताया गया है:

 ;(function($) { Drupal.behaviors.commercePayPointIFrame = { attach: function (context, settings) { if (top.location != location) { $('html').hide(); top.location.href = document.location.href; } } } })(jQuery); 

और यहां मूल पृष्ठ में जेएस प्रयोग किया जाता है:

 ;(function($) { /** * Automatically submit the hidden form that points to the iframe. */ Drupal.behaviors.commercePayPoint = { attach: function (context, settings) { $('div.payment-redirect-form form', context).submit(); $('div.payment-redirect-form #edit-submit', context).hide(); $('div.payment-redirect-form .checkout-help', context).hide(); } } })(jQuery); 

फिर अस्थायी खाली लैंडिंग पृष्ठ में आपको उस फॉर्म को शामिल करना होगा जो बाहरी पृष्ठ पर रीडायरेक्ट होगा।