2014-10-01 79 views
0

我想要做的事情應該是一個簡單的操作:當用戶點擊一個鏈接時,彈出一個模式窗口,其中填充了一個字符串中的一些適當的數據。下面是窗口中的HTML:模式彈出窗口的內容不會在IE中加載後重寫

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Modal Display Window</title> 

</head> 
<body> 

    <div id="modal_display_block">REPLACE THIS</div> 

</body> 
</html> 

這是JavaScript函數調用,並填充窗口:

function displayCenterBlock(data) { 

    DispWin = window.open("modal_window.html", "", 'toolbar=no,status=no,width=300,height=300'); 

    DispWin.onload = function() { 
     DispWin.document.getElementById('modal_display_block').innerHTML = data; 
    } 

} 

這個工作在每一個瀏覽器我試過除了IE很大。在IE中,innerHTML不會被數據重寫。是否有一些IE特定的技巧或調整我需要申請讓這個瀏覽器工作?

非常感謝提前!

編輯:我發現,如果我將元素重寫行從onload函數中移出,它在IE中可以正常工作,但不會在其他瀏覽器中正常工作。看來我的選擇是使用一些條件代碼來爲IE重寫,並等待所有其他瀏覽器的頁面加載,或放棄重寫元素的方法,只使用document.write。我從論壇搜索中得到的人喜歡阻止document.write,但現在看起來非常有吸引力。

回答

0

好吧,無論是好還是壞,這段代碼都達到了目標,並且即使在IE中也可以跨瀏覽器工作。

DispWin = window.open("", "Display", 'toolbar=no,status=no,width=300,height=300'); 

DispWin.document.open(); 

DispWin.document.write(data); 

DispWin.document.close(); 

DispWin.focus(); 

我得到document.write,就會重新寫整個頁面,這有時是壞的,但在這種情況下,這是正是我想要的:只有什麼是數據通過一個小頁面顯示論據。我可以在線設計它的樣式。

相關問題