document.body.setAttribute не работает в IE-7 - PullRequest
2 голосов
/ 17 сентября 2011

Я добавил файл «test.js» на мою страницу .aspx (в разделе head).

В test.js я добавил скрипт "document.body.setAttribute (" onload "," testload () ");"

, который хорошо работает в IE-8-9, Mozilla, Chrome и функции загрузки testLoad ().

Но это не работает в IE-7.

Как мне установить атрибут "body" из файла test.js в IE-7.

Ответы [ 2 ]

1 голос
/ 17 сентября 2011

Почему бы не

window.onload = testload;

или

window.onload = function()
{
    //Some codes
}

Обратите внимание, что body.onload и window.onload различны. Если вы хотите выполнить обработчик событий после загрузки всех ресурсов, используйте window.onload.

0 голосов
/ 10 декабря 2011

IE7 не поддерживает obj.setAttribute('onload', doSomething);.Вы можете обрабатывать IE с таймером.

var myiFrame = document.createElement("iframe");
myiFrame.setAttribute("id", "myiFrame");
myiFrame.setAttribute("src", "something.aspx");
myiFrame.setAttribute("class", "myclass");
myiFrame.setAttribute("frameBorder", "0"); //For IE
myiFrame.setAttribute("hspace", "0");
//For all:
myiFrame.setAttribute("onload", "testload();"); 
document.getElementById("myDiv").appendChild(myiFrame);
//For IE:
if (isIE = /*@cc_on!@*/false) {
    setTimeout(function () { testload() }, 500);
}

Вот и все.Если вы также хотите подключить прослушиватель событий при загрузке, то IE снова нужно исправить:

function testload() {
//Add event listener for click so that
//resize myiFrame in case any changes occur in size of content when user clicks
    var content = document.getElementById("myiFrame").contentWindow.document.body;
    if (content.addEventListener) { //For all
        content.addEventListener('click', function () {
            //find the height of the internal page
            var the_height = content.scrollHeight;

            //change the height of the iframe
            document.getElementById("myiFrame").height = the_height + 10;
        }, false);
    }
    else if (content.attachEvent) { //For IE
        cerceveIci.attachEvent('onclick', function () {
            //find the height of the internal page
            var the_height = cerceveIci.scrollHeight;

            //change the height of the iframe
            document.getElementById("kk-iframe").height = the_height + 10;
        });
    }
}
...