सबसे पहले, मुझे पता है कि इस घटना के बारे में कई प्रश्न हैं लेकिन अब तक की कोई भी कार्यवाही मेरे यहां मौजूद स्थिति में मदद नहीं करेगी।बाहरी पृष्ठ को स्क्रॉल करने के लिए iFrame क्रियाओं को रोकने के लिए कैसे करें
पर्यावरण: मेरे कोड एक पृष्ठ मैं नियंत्रण नहीं अंदर बाहरी iFrame में है। यह मेरी सभी सामग्री को फिट करने के लिए आकार में है इसलिए मेरे आईफ्रेम के अंदर कोई स्क्रोलिंग नहीं होती है। इसके बजाय, बाहरी पृष्ठ इसकी सामग्री को देखने के लिए इसे ऊपर और नीचे स्क्रॉल कर सकता है।
समस्या: मेरे पास एक आंतरिक आईफ्रेम है जिसमें तीसरे पक्ष के विज्ञापन हैं जिन्हें मैं नियंत्रित नहीं कर सकता। भीतरी iFrame निम्नलिखित जावास्क्रिप्ट के किसी भी चलाता है, तो बाहरी पृष्ठ स्क्रॉल नीचे सब कुछ दृश्य में आंतरिक iFrame लाने के लिए कमांड:
- कलंक और अंदर यह
window.location.href या एक तत्व पर ध्यान केंद्रित document.location.hash इसके अंदर एक एंकर पर।
scrollIntoView एक तत्व के अंदर यह
Here is a demo a colleague put together (5 सेकंड प्रतीक्षा इसे शुरू करने के लिए)
समाधान पर जो काम नहीं करते:
- अगर मैं नियंत्रित बाहरी पृष्ठ, मैं ऑनस्कोल ईवेंट को सुन सकता हूं और पेज को स्क्रॉलिंग से रोक सकता हूं अगर यह किसी मूसहेल या कुंजी अप/डाउन इवेंट से नहीं था। हालांकि, सुरक्षा कारणों से, मेरा बाहरी आईफ्रेम मुख्य पृष्ठ तक नहीं पहुंच सकता है या मुख्य पृष्ठ को ऊपर या नीचे स्क्रॉल करने से रोक सकता है।
- मैं उपरोक्त वर्णित सभी जावास्क्रिप्ट विधियों को ओवरराइट कर सकता हूं, इसलिए उन्होंने काम नहीं किया - हालांकि, मेरे आंतरिक आईफ्रेम में विज्ञापन वास्तव में अपने आंतरिक आईफ्रेम बनाते हैं जिनके पास कार्यक्षमता है और एक ही समस्या का कारण बनता है।
- प्रचारित होने की कोई घटना नहीं है कि मैं देख सकता हूं कि मेरा आईफ्रेम मुख्य पृष्ठ तक पहुंचने से क्यों रोक सकता है। ब्राउज़र सीधे innfost iFrame सुनने के लिए प्रतीत होता है।
क्या आप बच्चे आईफ्रेम को सैंडबॉक्स करने का प्रयास कर सकते हैं? मुझे एहसास है कि यह शायद एक समाधान नहीं है क्योंकि विज्ञापनों को स्क्रिप्ट चलाने की सबसे अधिक संभावना है, लेकिन शायद प्रयोग करने लायक है? Iframe सामग्री लोड होने के बाद शायद एक सैंडबॉक्स विशेषता जोड़ें? –
हाँ मैंने कोशिश की और काम करने के लिए प्रतीत होने वाली एकमात्र सैंडबॉक्सिंग सेटिंग पूरी तरह से जावास्क्रिप्ट को अक्षम कर रही है जो विज्ञापनों को स्क्रिप्ट चलाने की आवश्यकता नहीं है क्योंकि –