So entfernen Sie den Rahmen von iframe in IE mit Javascript

8

Ich versuche, ein iframe in das Browser-DOM über Javascript einzufügen und möchte den Rahmen entfernen, wenn IE aber nicht scheint. Ich habe diese vergeblich versucht:

%Vor%

und

%Vor%

Irgendwelche Vorschläge werden sehr geschätzt.

    
Tim Down 04.10.2009, 16:30
quelle

5 Antworten

15

Bizarrerweise suchte ich selbst heute nach einer Antwort auf dieses Thema. Ich habe festgestellt, dass das Festlegen der Eigenschaft frameBorder auf 0 funktioniert, so lange, wie Sie es tun, bevor der iframe zum Dokument hinzugefügt wird .

%Vor%     
Tim Down 04.10.2009 22:28
quelle
5

Das Attribut frameBorder existiert direkt auf iframe -Element ist keine CSS-Eigenschaft.

Versuchen Sie es mit:

%Vor%     
CMS 04.10.2009 18:15
quelle
2

Versuchen Sie es. Es wird alle Iframe-Elemente finden und ihre Grenzen in IE und anderen Browsern entfernen (obwohl Sie in Nicht-IE-Browsern den CSS-Stil "border: none;" anstelle von JavaScript verwenden können). UND es funktioniert auch, wenn AFTER verwendet wird, nachdem das iframe erzeugt und im Dokument platziert wurde (z. B. iframes, die in reinem HTML und nicht in JavaScript hinzugefügt werden)!

Dies scheint zu funktionieren, weil IE den Rahmen erstellt, nicht wie erwartet am Iframe-Element, sondern an der INHALT des Iframes - nachdem der Iframe in der Stückliste erstellt wurde. ($ @ & amp; * # @ !!! IE !!!)

Hinweis: Der IE-Teil funktioniert nur (natürlich), wenn das übergeordnete Fenster und der iframe vom selben Ursprung stammen (gleiche Domain, Port, Protokoll usw.). Andernfalls erhält das Skript in der IE-Fehlerkonsole "Zugriff verweigert" -Fehler. Wenn dies der Fall ist, besteht Ihre einzige Option darin, sie zu setzen, bevor sie generiert wird, wie andere bemerkt haben, oder verwenden Sie das Nicht-Standard-Attribut frameBorder="0". (Oder lass IE einfach fugig aussehen - meine aktuelle Lieblingsoption;))

Ich habe viele Stunden Arbeit bis zur Verzweiflung gebraucht, um das herauszufinden ...

Viel Spaß. :)

%Vor%     
FirstFraktal 23.01.2012 21:46
quelle
0

Versuchen Sie iframeElement.style.borderCollapse = 1; oder iframeElement.style.borderWidth = 0;

    
Anatoliy 04.10.2009 16:40
quelle
0

Sie sollten auch 'bedingte Kommentare' im HTML verwenden können, um das Attribut 'frameborder' nur in IE8 einzufügen:

%Vor%     
moloko 14.03.2016 17:43
quelle