2010-12-15 12 views
7

Nie ma problemu z usunięciem ramki iframe w przeglądarce z wyjątkiem IE7 ...
Moje pytanie brzmi: Jak usunąć/ukryć ramkę iframe po otwarciu strony za pomocą IE7?Jak usunąć ramkę iframe w IE7?

Odpowiedz

15

frameborder='0' border='0' style="border:0;" nie robi tego?

+0

To działa idealnie – jsims281

+0

Ty, działało idealnie! –

+2

Musiałem zamonetować B w frameborder, aby działał, więc miałbyś: frameBorder = "0" – Sean

1

Spróbuj tego. Znajdzie wszystkie elementy iframe i usunie ich granice w IE i innych przeglądarkach (chociaż możesz ustawić styl "border: none" w przeglądarkach innych niż IE zamiast JavaScript). I zadziała, nawet jeśli zostanie użyte PO utworzeniu elementu iframe i na miejscu w dokumencie (np. Ramek, które są dodawane w prostym kodzie HTML, a nie w JavaScript)!

Wygląda na to, że działa, ponieważ IE tworzy obramowanie, a nie element iframe, jak można się spodziewać, ale na ZAWARTOŚCI elementu iframe - po utworzeniu elementu iframe w zestawieniu komponentów. ($ @ & * # @ !!! IE !!!)

Uwaga: Część IE będzie działać (oczywiście), jeśli okno nadrzędne i element iframe pochodzą z SAMEGO początku (ta sama domena, port, protokół itp. .). W przeciwnym razie skrypt dostanie błędy "odmowa dostępu" w konsoli błędów IE. Jeśli tak się stanie, jedyną opcją jest ustawienie go przed wygenerowaniem, jak zauważyli inni, lub użycie niestandardowego atrybutu frameBorder = "0". (Lub po prostu niech IE patrzeć fugly - mój aktualny faworyt opcja;))

Zajęło mi wiele godzin pracy do punktu rozpaczy do tego dojść ...

Enjoy. :)

// ========================================================================= 
// 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. 
     } 
    }