我使用以下代码打开一个新窗口:
purchaseWin = window.open("Purchase.aspx","purchaseWin2", "location=0,status=0,scrollbars=0,width=700,height=400");
我想访问purchaseWin的dom树,例如
purchaseWin.document.getElementById("tdProduct").innerHTML = "2";
它不起作用。我只能这样做:
purchaseWin.document.write("abc");
我也试过了,它也不起作用:
$(purchaseWin.document).ready(function(){
purchaseWin.$("#tdProduct").html("2");
});
我该怎么办?
发布于 2009-08-11 05:38:19
使用jQuery,您必须访问子窗口的文档的contents:
$(purchaseWin.document).ready(function () {
$(purchaseWin.document).contents().find('#tdProduct').html('2');
});
没有库,使用普通的JavaScript,你可以这样做:
purchaseWin.onload = function () {
purchaseWin.document.getElementById('tdProduct').innerHTML = '2';
};
我认为问题在于您试图在实际加载子窗口之前检索DOM元素。
发布于 2013-02-20 00:09:18
也许jQuery的load事件可以为您工作,就像我在类似的问题中可以工作一样,而ready事件不能工作:
$(purchaseWin).load(function(){
purchaseWin.$("#tdProduct").html("2");
});
发布于 2013-03-16 00:41:36
如果加载的页面不属于父窗口的域,则无法访问子窗口的文档。这是由于Javascript内置的跨域安全性。
https://stackoverflow.com/questions/1258563
复制相似问题