2010-12-15 142 views
7

La suppression de la bordure de l'iframe dans n'importe quel navigateur sauf IE7 ne pose aucun problème ...
Ma question est: Comment supprimer/masquer la bordure iframe lorsque la page est ouverte avec IE7?Comment supprimer la bordure iframe dans IE7?

Répondre

15

frameborder='0' border='0' style="border:0;" ne le fait pas?

+0

Cela fonctionne parfaitement – jsims281

+0

Ty, a travaillé parfait! –

+2

Je devais mettre le B en majuscule pour le faire fonctionner, donc vous auriez: frameBorder = "0" – Sean

1

Essayez ceci. Il trouvera tous les éléments iframe et supprimera leurs frontières dans IE et d'autres navigateurs (bien que vous puissiez simplement définir un style de "border: none" dans les navigateurs non-IE au lieu d'utiliser JavaScript). ET cela fonctionnera même s'il est utilisé APRÈS que l'iframe est généré et mis en place dans le document (par exemple les iframes qui sont ajoutées en HTML et non en JavaScript)!

Cela semble fonctionner car IE crée la bordure, pas sur l'élément iframe comme vous le souhaitez, mais sur le CONTENU de l'iframe - après la création de l'iframe dans la nomenclature. ($ @ & * # @ !!! !!! !!!)

Remarque: La partie IE ne fonctionnera (bien sûr) que si la fenêtre parente et iframe sont de la même origine (même domaine, port, protocole, etc. .). Sinon, le script recevra des erreurs "accès refusé" dans la console d'erreur IE. Si cela se produit, votre seule option est de le définir avant qu'il ne soit généré, comme d'autres l'ont noté, ou d'utiliser l'attribut non standard frameBorder = "0". (Ou tout simplement laisser IE regarder fugly - mon option favorite;))

Ça m'a pris un grand nombre de heures de travail au point de désespoir pour comprendre cela ...

Profitez. :)

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