Sie können es auch mit JavaScript auf diese Weise machen. Es findet alle iframe-Elemente und entfernt ihre Ränder in IE und anderen Browsern (obwohl Sie in Nicht-IE-Browsern einfach den Stil "border : none;" festlegen können, anstatt JavaScript zu verwenden). Und es funktioniert auch dann, wenn der iframe erst NACH der Erstellung des Dokuments eingesetzt wird (z. B. bei iframes, die in einfachem HTML und nicht in JavaScript hinzugefügt werden)!
Dies scheint zu funktionieren, weil der IE den Rahmen nicht auf dem iframe-Element erstellt, wie man erwarten würde, sondern auf dem INHALT des iframe - nachdem der iframe in der BOM erstellt wurde ($@&*#@!!! IE!!).
Hinweis: Der IE-Teil funktioniert (natürlich) nur, wenn das übergeordnete Fenster und der iframe denselben Ursprung haben (gleiche Domäne, gleicher Port, gleiches Protokoll usw.). Andernfalls wird das Skript "Zugriff verweigert" Fehler in der IE-Fehlerkonsole erhalten. Wenn das passiert, ist Ihre einzige Option, es zu setzen, bevor es generiert wird, wie andere bemerkt haben, oder verwenden Sie das Nicht-Standard-Attribut frameBorder="0". (oder einfach den IE hässlich aussehen lassen - meine derzeitige Lieblingsoption ;) )
Ich brauchte VIELE Stunden, in denen ich mich bis zur Verzweiflung abmühte, um das herauszufinden...
Genießen Sie. :)
// =========================================================================
// Remove borders on iFrames
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.
}
2 Stimmen
Erstellen Sie einfach eine Klasse wie ".nb {border:none;}" innerhalb des <style>-Tags. Fügen Sie dann die Klasse "class="nb"" innerhalb des <iframe>-Tags hinzu.