मैं सोच रहा था कि अगर कोई यह जांचने के लिए कैसे जांचता है कि आईफ्रेम में सामग्री बह रही है और स्क्रॉलबार दिखाई दे रहे हैं या नहीं?यह देखने के लिए जांचें कि क्या आईफ़्रेम में स्क्रॉलबार दिखाई दे रहे हैं?
धन्यवाद
मैं सोच रहा था कि अगर कोई यह जांचने के लिए कैसे जांचता है कि आईफ्रेम में सामग्री बह रही है और स्क्रॉलबार दिखाई दे रहे हैं या नहीं?यह देखने के लिए जांचें कि क्या आईफ़्रेम में स्क्रॉलबार दिखाई दे रहे हैं?
धन्यवाद
आप अगर तत्व के scrollHeight
clientHeight
से अधिक है की जांच करना चाहते हैं, या अगर तत्व के scrollWidth
clientWidth
से अधिक है। यह सीधे उन गुणों के साथ किया जा सकता है, या jQuery द्वारा प्रदान की गई सहायक विधियों का उपयोग करके किया जा सकता है।
If the element's content generated a vertical scrollbar, the scrollHeight value is equal to the minimum clientHeight the element would require in order to fit all the content in the viewpoint without using a vertical scrollbar. When an element's content does not generate a vertical scrollbar, then its scrollHeight property is equal to its clientHeight property. This can mean either the content is too short to require a scrollbar or that the the element has CSS style overflow value of visible (non-scrollable).
सामान्य रूप में आप तत्व की scrollHeight/scrollWidth और offsetHeight/offsetWidth के डेल्टा तुलना करनी चाहिए। यदि सकारात्मक है तो 'हमें विजेता मिला'। लेकिन .. जब एक iframe में स्क्रॉलबार की तलाश में, चीजों को एक छोटे से थोड़ा जटिल काम मिलता है:
var frm=document.getElementById("frm");
var iIsVrScrollBar = frm.contentWindow.document.documentElement.scrollHeight>frm.contentWindow.document.documentElement.offsetHeight ? 1 : 0;
var iIsHrScrollBar = frm.contentWindow.document.documentElement.scrollWidth>frm.contentWindow.document.documentElement.offsetWidth ? 1 : 0;
आपको यह जोड़ना चाहिए कि यह केवल तभी काम करता है जब iframe src उसी पृष्ठ से आता है जो इसे होस्ट करने वाले वेब पेज के रूप में होता है। एक उदाहरण त्रुटि होगी: "असीमित सुरक्षा त्रुटि: मूल के साथ एक फ्रेम को अवरुद्ध" http: // ... "मूल के साथ फ्रेम तक पहुंचने से" https: // ..... "।फ्रेम अनुरोध करने के लिए "http" का प्रोटोकॉल होता है, जिस फ्रेम तक पहुंचा जा रहा है उसका "https" का प्रोटोकॉल होता है। प्रोटोकॉल मेल खाना चाहिए। – gae123
मैं यह काम करने के लिए प्राप्त करने के लिए कोड को संशोधित करने के लिए किया था।
1) IFRAME & सामग्री पर एक ही वेबसाइट/फ़ोल्डर संरचना
2) प्रक्रिया सही
3 करने के लिए "sizewindow" सेटिंग ने उकसाया है) यह झलकी एक टाइमर समारोह सेट का भाग है anout 0.5 सेकंड
4) IE11 पर परीक्षण किया, FF34 & 35, क्रोम 31 & 40, & ओपेरा 12,6
5) सक्रिय ग पर स्तोत्र केवल सामग्री की तुलना में बड़ा करने के लिए खिड़की आकार,
देख http://www.users.waitrose.com/~cresby/map2.htm
if (sizewindow){
if(iIsVrScrollBar==1) {
frm.style.height = (frm.contentWindow.document.body.offsetHeight+20);
iIsVrScrollBar = (frm.scrollWidth!=frm.contentWindow.document.documentElement.scrollWidth) ? 1 : 0;
if(iIsVrScrollBar==0) sizewindow=false;
}else{
frm.style.height = (frm.contentWindow.document.body.offsetHeight-10);
iIsVrScrollBar = (frm.scrollWidth!=frm.contentWindow.document.documentElement.scrollWidth) ? 1 : 0;
if(iIsVrScrollBar==1) {frm.style.height = (frm.contentWindow.document.body.offsetHeight+10);}
}
}
इस विधि की आवश्यकता है कि iframe की सामग्री एक ही सर्वर पर होस्ट किया है, या इसे क्रॉस-डोमेन हो सकता है? – Olokoo
यह या तो हो सकता है क्योंकि iframe तत्व आपके डोमेन में है। सामग्री (जरूरी नहीं) है, लेकिन सामग्री आखिरकार आईफ्रेम की स्क्रॉल को परिभाषित करने जा रही है और स्क्रॉल हाइट और अन्यथा कोई फर्क नहीं पड़ता। – jimp
मैंने कोशिश की, और यह काम नहीं किया, मुझे दोनों के लिए एक ही परिणाम मिलता है, और वे तत्व की ऊंचाई दोनों हैं। \t \t फ़ंक्शन चेकस्क्रॉल() { \t \t \t var intElemScrollHeight = document.getElementById ('websiteView')। ScrollHeight; \t \t \t var intElemClientHeight = document.getElementById ('websiteView')। क्लाइंट हाइट; \t \t \t अलर्ट (intElemScrollHeight); \t \t \t अलर्ट (intElemClientHeight); \t \t} – Olokoo