2009-10-26 9 views
33

वहाँ एक iframe पर दिखाए जाने वाले एक सीमा है और मैं इसे से छुटकारा पाने के लिए नहीं कर सकते हैं।आईई 8 आइफ्रेम सीमा

IE 6 और 7 काम एक छोटे से जावास्क्रिप्ट के साथ इरादा के रूप में:

function test(){ 
    var iframe = document.getElementById('frame2'); 
    iframe.contentWindow.document.body.style.backgroundColor = "#a31d1d"; 
    iframe.contentWindow.document.body.style.border = "#a31d1d"; 
    iframe.contentWindow.document.body.style.outlineColor = "#a31d1d"; 
} 

लेकिन सीमा आईई 8 में दिखाई देती रहती

+0

स्टैक ओवरव्लो में टेक्स्ट क्षेत्र के नीचे एक शानदार पूर्वावलोकन क्षेत्र है जहां आप अपना प्रश्न दर्ज करते हैं। पोस्ट करने से पहले अगली बार फ़ॉर्मेटिंग को ठीक करने के लिए उस पूर्वावलोकन का उपयोग करें। – OregonGhost

उत्तर

0

नमूना HTML नमूना जे एस के साथ जाने के लिए मददगार होगा =)

(पेज आप समस्याएं आ रही हैं पर प्रेस F12) IE8 के डेवलपर उपकरण का उपयोग कर क्या शैलियों आइफ्रेम करने के लिए लागू किया जा रहा है अलग करने के लिए प्रयास करें। आप अपने पुनरावृत्ति समय को कम करने के लिए वहां शैलियों के साथ भी खेल सकते हैं।

0

ध्यान रखें कि यह आईएसएस सीएसएस, में सीमा सेटिंग्स का सम्मान नहीं कर सकता है, जबकि iframe तत्व पर विशेषता BORDER=0 की पारंपरिक सेटिंग काम कर सकती है। कम से कम एक परीक्षण के लायक है।

संपादित करें: ऐसा लगता है कि क्या इस समस्या को ठीक करता है frameborder = '0' iframe तत्व पर स्थापित कर रही है। यह कम से कम मेरे लिए काम किया। iframe टैग के लिए गुण निम्नलिखित

94

जोड़ें:

marginheight="0" marginwidth="0" frameborder="0" 
+1

मैंने व्यावहारिक रूप से इन्हें जोड़ने के लिए jQuery का उपयोग करने का प्रयास किया लेकिन IE8 उन्हें केवल अनदेखा करता है; एक सीमा छिपाने की कोशिश करने में बहुत अधिक समय बर्बाद करने के बाद (क्या एक छोटा काम है?) मैं आईई 8 के लिए मजबूर करने के लिए हार्ड कोडित विशेषताओं के साथ गया था। "आईई इतनी बकवास क्यों है !?" आज मेरा पसंदीदा वाक्यांश है - और हाँ मैं क्रॉस ब्राउज़र परीक्षण कर रहा हूं :- डी। हेहे। इसे समझने के लिए धन्यवाद! –

+2

FYI: दुर्भाग्यवश दस्तावेज़ में एक फ्रेमबॉर्डर विशेषता इनलाइन जोड़ना दस्तावेज़ को HTML 5 के लिए कभी भी मान्य नहीं करेगा। लेकिन इस मुद्दे के आसपास कोई अन्य तरीका नहीं है। –

+7

कोई भी डब्ल्यू 3 सी वैध समाधान? – enloz

17

मैं गतिशील बनाया iframes के साथ एक ही समस्या थी, और यह पता चला सीमा गुण की स्थापना कि के बाद जोड़ने दस्तावेज़ करने के लिए iframe नहीं प्रभाव पड़ता है :

var iframe = document.createElement("IFRAME"); 
iframe.src = "http:www.stackoverflow.com"; 
//Iframe added BEFORE setting border properties. 
document.body.appendChild(iframe); 
iframe.frameBorder = "no"; 
:

निम्नलिखित कोड एक 3 डी सीमा से पता चलता

लेकिन यह वास्तव में यह निकालता है:

var iframe = document.createElement("IFRAME"); 
iframe.src = "http:www.stackoverflow.com"; 
iframe.frameBorder = "no"; 
//Iframe added AFTER setting border properties. 
document.body.appendChild(iframe); 

उम्मीद है कि इस अपनी समस्या को हल करने में मदद मिलेगी।

1

मैं इस विचार में बदलाव का भार की कोशिश की और इन पंक्तियों के साथ कुछ का उपयोग कर समाप्त हो गया। सोचा था कि मैं इसे साझा करूंगा।

<script type="text/javascript"> 
    url = 'http://www.dollypower.com'; 
    title = 'Dolly Power'; 
    width = '660'; 
    height = '430'; 
    document.write('<iframe src='+url+' title='+title+' width='+width+' height='+height+' frameborder=0></iframe>'); 
</script> 

तो मैं एक यानी गैर जे एस उपयोगकर्ताओं के लिए विकल्प, प्रवेश करने के लिए नोस्क्रिप्ट टैग का उपयोग किया:

<noscript><p><a href="http://www.dollypower.com" target="_blank">Please click here for Dolly Power</a></p></noscript> 

मैं IE8 में यह परीक्षण किया है और यह सब मेरे लिए अच्छा है और यह भी सत्यापित करता है।

आशा इस कोई वहाँ बाहर मदद कर सकता है!

1

सफलता!

इसे आजमाएं। यह किसी भी आईफ्रेम तत्वों को प्राप्त करेगा और आईई और अन्य ब्राउज़रों में अपनी सीमाओं को हटा देगा (हालांकि आप जावास्क्रिप्ट का उपयोग करने के बजाय गैर-आईई ब्राउज़र में "सीमा: कोई नहीं;" की शैली सेट कर सकते हैं)। और यह तब भी काम करेगा जब आईफ्रेम उत्पन्न होने के बाद और दस्तावेज़ में जगह (जैसे iframes जो सादे HTML में जोड़े गए हैं और जावास्क्रिप्ट नहीं हैं)!

यह काम करने के लिए क्योंकि आईई, सीमा बनाता है iframe तत्व के रूप में आप उम्मीद थी पर नहीं दिखाई देता है, लेकिन iframe की सामग्री पर - के बाद आइफ्रेम बीओएम में बनाया जाता है। ($ @ & * # @ !!! आईई !!!)

नोट: आईई भाग केवल तभी काम करेगा (अगर) मूल विंडो और आईफ्रेम समान मूल (समान डोमेन, पोर्ट, प्रोटोकॉल इत्यादि) से हैं। अन्यथा स्क्रिप्ट को आईई त्रुटि कंसोल में "पहुंच से वंचित" त्रुटियां मिलेंगी। यदि ऐसा होता है, तो आपका एकमात्र विकल्प इसे उत्पन्न करने से पहले सेट करना है, जैसा कि अन्य ने नोट किया है, या गैर-मानक फ्रेमबॉर्डर = "0" विशेषता का उपयोग करें। (या बस आईई fugly नजर डालते हैं - मेरे वर्तमान पसंदीदा विकल्प;))

मुझे निराशा की बात करने के लिए काम करने का कई घंटे लगे इस यह पता लगाने की ...

का आनंद लें। :)

// ========================================================================= 
// Remove borders on iFrames 

if (window.document.getElementsByTagName("iframe")) 
    { 
     var iFrameElements = window.document.getElementsByTagName("iframe"); 
     for (var i = 0; i < iFrameElements.length; i++) 
     { 
      iFrameElements[i].frameBorder="0"; // For other browsers. 
      iFrameElements[i].setAttribute("frameBorder", "0"); // For other browsers (just a backup for the above). 
      iFrameElements[i].contentWindow.document.body.style.border="none"; // For IE. 
     } 
    } 
0

यदि आप चाहते हैं कि आपका कोड सत्यापित करने के लिए आप जावास्क्रिप्ट के साथ ऐसा कर सकते हैं। जब मैं इस समस्या को कुछ महीने पहले here

var iframe = document.createElement("iframe"); 
iframe.src = "banner_728x90.gif"; 
iframe.width = "728"; 
iframe.height = "90"; 
iframe.frameBorder = "0"; 
iframe.scrolling = "no"; 
document.body.appendChild(iframe); 

च आप अन्य पृष्ठ iframe में निर्बाध आप यह कर सकते हैं यदि आप कॉपी लोड और अपने पृष्ठ के सिर में इस कोड को पेस्ट करना चाहते था मैं सही जवाब मिल गया । मैंने इसे मुफ्त स्क्रिप्ट वाले साइट पर पाया। प्रदर्शन अधिकांश मामलों में अच्छा है

function getDocHeight(doc) { 
    doc = doc || document; 
    var body = doc.body, html = doc.documentElement; 
    var height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight); 
    return height; 
} 
function setIframeHeight(id) { 
    var ifrm = document.getElementById(id); 
    var doc = ifrm.contentDocument? ifrm.contentDocument: ifrm.contentWindow.document; 
    ifrm.style.visibility = 'hidden'; 
    ifrm.style.height = "10px"; // reset to minimal height in case going from longer to shorter doc 
    ifrm.style.height = getDocHeight(doc) + 10 + "px"; 
    ifrm.style.visibility = 'visible'; 
} 

फिर आप अपना आईफ्रेम एक आईडी दें और स्क्रिप्ट को लोड पर कॉल करें। इस तरह से।

var iframe = document.createElement("iframe"); 
iframe.setAttribute('id', "ifrm1"); 
iframe.setAttribute('src', 'http://www.hekcmviw.com/'); // change the URL 
iframe.setAttribute('width', '100%'); 
iframe.setAttribute('height', '10'); 
iframe.setAttribute('frameBorder', '0'); 
iframe.setAttribute('scrolling', 'no'); 
iframe.setAttribute('onload' ,"setIframeHeight(this.id)"); 
document.body.appendChild(iframe);