我使用以下代码打开一个新窗口:

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");

   });

我该怎么办?

最佳答案

使用jQuery,您必须访问子窗口文档的contents:

$(purchaseWin.document).ready(function () {
  $(purchaseWin.document).contents().find('#tdProduct').html('2');
});

在没有库的情况下,使用纯JavaScript,您可以通过以下方式实现:
purchaseWin.onload = function () {
  purchaseWin.document.getElementById('tdProduct').innerHTML = '2';
};

我认为问题在于您尝试在实际加载子窗口之前检索DOM元素。

关于javascript - 如何访问子窗口的dom树?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1258563/

10-10 05:10