我試圖將DOM節點從「根」頁面移動到通過window.open()
創建的新彈出窗口。這是我正在使用的代碼。將DOM節點移動到彈出窗口
var win = window.open('/Search/Print', 'printSearchResults'),
table = $('#printTable');
win.document.close();
setTimeout(function() {
var el = win.document.createElement("table");
el.innerHTML = table.html();
win.document.body.appendChild(el);
}, 40);
它適用於Chrome,但在IE8中,我收到以下錯誤:「未知的運行時錯誤。」
我也試着這樣說:
var p = window.open('/Search/Print', 'printSearchResults'),
table = $('#printTable');
setTimeout(function() {
p.document.body.appendChild(table.clone(false)[0]);
}, 100);
這樣做,這樣,我收到IE8「支持沒有這樣的接口」。 Chrome再次正常工作。
有沒有人有辦法做我想達到的目標?
這裏是彈出窗口中的HTML只是爲了完整起見:
<!DOCTYPE html>
<html>
<head>
<title>Print Results</title>
</head>
<body>
</body>
</html>
我不知道這是否是問題,但任意'setTimeout()'調用是處理異步加載的非常糟糕的方式。改爲使用新窗口的'onload'處理程序。 – nrabinowitz 2012-08-08 16:30:33