如何使用Javascript从父窗口设置子pop op元素的值?

如何使用Javascript从父窗口设置子pop op元素的值?,javascript,jquery,asp.net,internet-explorer-8,Javascript,Jquery,Asp.net,Internet Explorer 8,我正在使用以下命令从父页面调用弹出窗口: var childWindow = open('test1.aspx', '1397127848655', 'resizable=no,width=700,height=500'); 然后,我尝试使用这个childWindow对象设置从父窗口弹出的chil上的两个跨度的值 只要我使用chrome,这段代码就可以正常工作。但它拒绝在IE8上工作。也没有控制台错误 我试图删除childWindow.onload=function{},但随后该页面将在chr

我正在使用以下命令从父页面调用弹出窗口:

var childWindow = open('test1.aspx', '1397127848655', 'resizable=no,width=700,height=500');
然后,我尝试使用这个childWindow对象设置从父窗口弹出的chil上的两个跨度的值

只要我使用chrome,这段代码就可以正常工作。但它拒绝在IE8上工作。也没有控制台错误

我试图删除childWindow.onload=function{},但随后该页面将在chrome和IE8上进行某种刷新

更新 这也不管用

   function CallPopUp(rowindex,controlname ) {
            function popupLoad() {
                alert('this msg does not shows up when run on IE8');
                var hidden1 = childWindow.document.getElementById('hidden1');
                var hidden2 = childWindow.document.getElementById('hidden2');
                hidden1.innerHTML = rowindex;
                hidden2.innerHTML = controlname;
            }

            var childWindow = open('test1.aspx', '1397127848655', 'resizable=no,width=700,height=500');
            if (childWindow.document.readyState === "complete") {
                popupLoad();
            } else {
                childWindow.onload = popupLoad;
            }
如果test.aspx在浏览器缓存中,则可能在附加事件处理程序之前已经发生了onload事件,因此您丢失了它(即已知会对图像加载事件执行此操作)。我建议您在附加事件处理程序之前检查document.readyState

function popupLoad() {
    alert('this msg does not shows up when run on IE8');
    var hidden1 = childWindow.document.getElementById('hidden1');
    var hidden2 = childWindow.document.getElementById('hidden2');
    hidden1.innerHTML = rowindex;
    hidden2.innerHTML = controlname;
}

var childWindow = open('test1.aspx', '1397127848655', 'resizable=no,width=700,height=500');
if (childWindow.document.readyState === "complete") {
    popupLoad();
} else {
    childWindow.onload = popupLoad;
}
作为另一个选项,您可以将这些值放入URL的查询参数中:

`"test1.aspx?hidden1=" + rowindex + "&hidden2=" + controlname` 
然后让弹出窗口从查询字符串中的onload处理程序加载自己的字段。然后,您可以使弹出窗口中的代码保持独立,而不必尝试从一个窗口修改另一个窗口


如果您不想让用户看到或编辑它,您可以关闭弹出窗口中的位置栏。

隐藏的类型是什么?它只是一个范围。。使用名为hidden的类。它现在是可见的。我计划稍后给它隐藏css样式on@Adil这段代码在chrome上运行良好。但是,当我在IE8上运行此命令时,span仍然为空。@Adil似乎该函数甚至没有在IE8上执行,因为我将警报放在第一行,但它没有显示。请检查我的更新。我尝试了你的代码,但没有成功work@Arbaaz-如果您无法向我们显示问题所在的实际运行页面URL,我们只能进行盲目猜测。实际调试需要一个运行示例。我知道。若你们必须用父窗口的值来设置子弹出窗口的跨度值。您将如何操作?@Arbaaz-一种方法是将这些值放入URL test1.aspx的查询参数中?hidden1=+rowindex+&hidden2=+controlname,然后让弹出窗口从查询字符串中的onload处理程序加载自己的字段。然后,您可以使弹出窗口中的代码保持独立,而不必尝试从一个窗口修改另一个窗口。我确信你可以从一个具有相同来源的窗口修改另一个窗口,但如果不进行调试,我看不到你的问题所在。我知道,但我不想在某些浏览器中编辑url,这可能会允许它。
`"test1.aspx?hidden1=" + rowindex + "&hidden2=" + controlname`