Javascript 更改弹出内容

Javascript 更改弹出内容,javascript,popup,Javascript,Popup,我正在使用popup=window.open(..)打开一个弹出窗口,然后尝试在弹出窗口的div中插入一些html popup.document.getElementById('div-content').innerHTML=“hello world”不做任何事情,popup.document.getElementById('the-field').value=“你好”更改id为“字段”的字段的内容 你知道为什么一个在工作而另一个不在工作吗?如何替换div的内容 希望你能帮忙 编辑: 弹出窗口

我正在使用
popup=window.open(..)
打开一个弹出窗口,然后尝试在弹出窗口的div中插入一些html

popup.document.getElementById('div-content').innerHTML=“hello world”不做任何事情,
popup.document.getElementById('the-field').value=“你好”更改id为“字段”的字段的内容

你知道为什么一个在工作而另一个不在工作吗?如何替换div的内容

希望你能帮忙

编辑: 弹出窗口


我认为这里的问题是,当您尝试访问其中的一部分时,弹出窗口中的文档尚未完成加载。在我的机器上,两个div都不能用提供的代码访问

如果要插入的内容是固定的,那么只需在弹出页面本身上执行所有这些更改,以便只有在文档完全加载时才能进行更改。如果需要发送一些动态内容,最简单的方法可能是使用查询字符串

更新: 只有当弹出窗口完成加载时,才可以启动DOM操纵功能。首先,在主窗口上需要一个回调函数,并将所有DOM操作代码放在那里:

window.callback = function(doc) {
    doc.getElementById('the-field').value = "Hello there";
    doc.getElementById('div-content').innerHTML = "Hello world";
}
然后,只需将函数调用绑定到弹出窗口上的body onload事件:

<script type="text/javascript">
    function loaded() {
       window.opener.callback(document);
    }
</script>
<body onload="loaded();"><!-- body content --></body>

函数加载(){
window.opener.callback(文档);
}
…或者简单地说:

<script type="text/javascript">    
function reportComplete(report_content)
{
    var popup;
    var template_path;

    template_path = base_url + "application/views/secure/reports_preview.php";
    popup = window.open(template_path, "Report", "scrollbars=yes,resizable=yes");

    popup.window.onload = function() {
        popup.document.getElementById('the-field').value = "Hello There";
        popup.document.getElementById('div-content').innerHTML = "hello world";
    }
}
</script>

功能报告完成(报告内容)
{
var弹出窗口;
var模板路径;
template_path=base_url+“application/views/secure/reports_preview.php”;
弹出=窗口。打开(模板路径,“报告”,“滚动条=是,可调整大小=是”);
popup.window.onload=函数(){
popup.document.getElementById('the-field').value=“你好”;
popup.document.getElementById('div-content').innerHTML=“hello world”;
}
}

您能在主页和弹出窗口中发布代码吗?我已经编辑了主题并添加了代码。谢谢你说得对!这是一个时间问题。如果我在
popup.document.getElementById('the-field')上设置断点,value=“Hello There”然后两个调用都成功。div和字段是可更新的。现在的问题是,我如何判断弹出窗口何时准备好进行操作?
<script type="text/javascript">
    function loaded() {
       window.opener.callback(document);
    }
</script>
<body onload="loaded();"><!-- body content --></body>
<script type="text/javascript">    
function reportComplete(report_content)
{
    var popup;
    var template_path;

    template_path = base_url + "application/views/secure/reports_preview.php";
    popup = window.open(template_path, "Report", "scrollbars=yes,resizable=yes");

    popup.window.onload = function() {
        popup.document.getElementById('the-field').value = "Hello There";
        popup.document.getElementById('div-content').innerHTML = "hello world";
    }
}
</script>