Tuesday 15 April 2014

javascript - How to know when an iframe comes into view? -


अगर मेरे पास एक साइट है जिसमें आइफ्रेम है:

  & lt; html & gt; & LT; बॉडी & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; br / & gt; & Lt; iframe src = "http: /somelink.com/iframe.html" & gt; & lt; / iframe & gt; & Lt; / body & gt; & Lt; / html & gt;  

क्या आइफ्रेम को जानने के लिए क्या संभव है कि यह "देखा" हो सकता है? उदाहरण के लिए, स्क्रीन के शीर्ष से संबंधित iframe की शीर्ष स्थिति को जानने के लिए।

यह मेरा परीक्षण iframe है: (सभी मान 0 हैं, माता-पिता का कोई भी बात नहीं है)

< html & gt;> <कोड> & lt पूर्व; & Lt; शीर्ष & gt; & Lt; script src = "// code.jquery.com/jquery-1.11.2.min.js"></script> & Lt; स्क्रिप्ट प्रकार = "टेक्स्ट / जावास्क्रिप्ट" & gt; $ (दस्तावेज़) .ready (function () {console.log ("ok"); चेक ();}); फ़ंक्शन चेक () {/ /} मूल पैरेंट स्कैनटॉप = $ (window.parent.document) की स्थिति .scrollTop (); Console.log ("parentScrollTop:" + parentScrollTop); // स्वयं की स्थिति वरीयता स्थिति = $ ("शरीर")। स्थिति ()। शीर्ष; Console.log ("बॉडी स्थिति:" + बॉडीपोशन); सेट इन्टरवाल (चेक, 1000); } & Lt; / script & gt; & Lt; शैली प्रकार = "टेक्स्ट / सीएसएस" & gt; शरीर {पृष्ठभूमि-रंग: लाल; } & Lt; / style & gt; & Lt; / head & gt; & LT; बॉडी & gt; & Lt; / body & gt; & Lt; / html & gt;

मैंने अधिक स्पष्ट होने के लिए एक छवि बनायी है। छवि विवरण यहां दर्ज करें

मुझे आइफ्रेम के भीतर से जानना होगा अगर यह दृश्यमान है या नहीं ! इसलिए पृष्ठ के अंदर से नहीं है जो iframe रखता है।

मुझे पता है यह एक पुराना सवाल है लेकिन कुछ नया क्रोम के एपीआई को रिहा कर दिया गया है जो क्रोम के नवीनतम संस्करण (22 +) पर आपके प्रश्न का उत्तर दे सकता है

इंटरैक्शनऑबर्वर आप इसे यहां पा सकते हैं:

एक पॉलीफ़िल है जो विकसित किया जा रहा है (वही रेपो), लेकिन यह iframe afaik के भीतर से ही काम नहीं करेगा, अगर स्क्रिप्ट मूल वेबपेज पर है।

अन्य ब्राउज़रों के लिए यह करने के लिए कुछ अंधेरे तरीके हैं समय पर हमले के आधार पर, यह आलेख इसे बहुत अच्छी तरह बताता है:

संपादित करें: आने के लिए अगला फ़ायरफ़ॉक्स संस्करण में इंटरैक्शनऑबर्वर सुविधा डिफ़ॉल्ट रूप से सक्रिय है अब, किनारे के लिए!


No comments:

Post a Comment