2013-07-03 55 views
0

這可能是Internet Explorer(IE9)中的一個錯誤,它是否知道它是否已知或有解決方法。使用document.write後,Internet Explorer window.resize失敗

它可以通過開放的,開發者控制檯,並執行這些命令進行復制,

window.onresize = function() { alert("onresize"); } 

在這一點上,當你調整窗口的大小,如預期的事件觸發。現在執行,

document.write("test"); 

此後window.resize將爲空。

這可能是因爲document.write調用document.open清除所有內容。

但是,即使你重新添加一個事件處理程序,它永遠不會火,

window.onresize = function() { alert("onresize"); } 
+0

你是否嘗試允許阻止的內容(js有時被阻止)? – CME64

+0

[FYI](http://stackoverflow.com/a/802943/382982) – pdoherty926

+0

只是一個小問題:如何添加'window.onresize回到一個空白文件? – Teemu

回答

1

你必須寫整個腳本塊到新文檔。例如:

document.write("<div>some html</div><script>window.onsize=function() { alert('onresize'); } </script> 

這是因爲當您調用document.write時,它會創建一個帶有「空」url的新文檔。如果您的原始文檔來自不同的Url(例如,「http://www.yoursite.com/Page1.aspx」),則空白Url的網站與原始Url的網站不同,並且瀏覽器不允許來自一個網站的腳本(避免跨站點腳本攻擊),因此您不可能從具有空URL的頁面調用「http://www.yoursite.com/Page1.aspx」中定義的函數,因此您必須將腳本代碼本身寫入新的文檔

相關問題