2010-12-15 2 views

ответ

15

frameborder='0' border='0' style="border:0;" не делает этого?

+0

Это прекрасно работает – jsims281 2011-05-20 13:55:02

1

Попробуйте это. Он найдет любые элементы iframe и удалит их границы в IE и других браузерах (хотя вы можете просто установить стиль «border: none;» в браузерах, отличных от IE, вместо использования JavaScript). И он будет работать, даже если используется ПОСЛЕ того, как iframe создается и находится в месте документа (например, iframes, которые добавляются в обычный HTML, а не JavaScript)!

Это похоже на работу, потому что IE создает границу, а не в элементе iframe, как и следовало ожидать, но в CONTENT iframe - после создания iframe в спецификации. ($ @ & * # @ !!! IE !!!)

Примечание: часть IE будет работать только (конечно), если родительское окно и iframe находятся в ИСТОЧНИКЕ (тот же домен, порт, протокол и т. Д.) .). В противном случае скрипт получит ошибки «отказа в доступе» в консоли ошибок IE. Если это произойдет, единственный вариант - установить его перед тем, как он будет сгенерирован, как отмечали другие, или использовать нестандартный атрибут frameBorder = «0». (Или просто позволить IE выглядеть 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. 
     } 
    }