2011-09-17 144 views
2

我在.aspx頁面的頭部添加了「test.js」文件。在test.js中我添加了一個腳本「document.body.setAttribute(」onload「,」testload()「);」document.body.setAttribute在IE-7中不起作用

這是在IE-8-9,Mozilla,Chrome和加載testLoad()函數中運行良好。

但它不工作在IE-7。

如何在IE-7中從test.js文件設置「body」的屬性。

+0

本發明的設置onload的方式。我從來沒有見過。 – mplungjan

回答

1

爲什麼不

window.onload = testload; 

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

注意body.onloadwindow.onload是不同的。如果要在所有資源加載後執行您的事件處理程序,請使用window.onload

+0

我用過相同的,它工作正常 – Shailesh

+0

window.onload = load; – Shailesh

+0

@Shai,當然。如果有效,您可以將我的答案標記爲正確答案。謝謝 – dpp

0

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 = /*@[email protected]*/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; 
     }); 
    } 
}