2012-10-22 63 views
0

我想打开预览窗口并确认它,所以我想使用window.open()并在文档的底部添加一些复选框。我认为它应该像追加到window.open()

var w = window.open("http://mypage.aspx", "_parent", "width=800,height=800"); 
w.document.write("<input type='checkbox' id='IsConfirmed' />"); 

但是这个代码不工作......这不加载的http://mypage.aspx内容。

所以问题是如何加载“http://mypage.aspx”的内容并追加复选框在页面底部?

在此先感谢!

+0

不要在新编写的代码中使用'document.write'。我可以告诉你的代码仅仅因为你使用了'document.write'而失败。改用DOM操作。 –

+0

该代码是正确的,你应该检查你是否可以在浏览器中加载页面。 – thomaux

+0

如果代码可行(例如,您加载的页面来自与脚本相同的域),则该页面将被擦除。加载后不能执行document.write,只能内联。 – mplungjan

回答

1

考虑到http://mypage.aspx是一个有效的页面路径,需要一段时间才能在开始时加载如此播放文档,这可能不是一个好主意。这也可能是它似乎没有加载的原因。

var w = window.open("http://mypage.aspx", "_parent", "width=800,height=800"); 
w.onload = function(){this.document.body.innerHTML+="<input type='checkbox' id='IsConfirmed' />";}; 

在窗口中使用onload将确保您在页面完全加载后追加复选框......这将防止出现一些错误。

+0

如果你在页面加载后写入,我相信你会覆盖页面。像这样的“附加”也会破坏DOM。 –

+0

你是对的...让我解决这个问题。如果你写错了,使用'.innerHTML'的 – Salketer

+0

仍然很容易破坏DOM。我认为这是最好的坚持使用DOM操作(例如'document.createElement('input')','document.body.appendChild(elem)') –

0

http://mypage.aspx看起来不对......主机名在哪里?

ok ..即使该请求是有效的..请求被满足的时刻,变量w不再可用我想...你在不同的页面上,并且JavaScript变量不会持续通过我认为位置变化..

+0

对不起,我错过了描述,页面地址有效。 – Vytalyi

+0

以及... 我试图在window.open之后触发警报,就像你的警报实际发生在加载之前。所以你document.write ..或$(document.body).append(...)将无法正常工作... 和设置w.onload =无论......什么似乎并不火... ,因为一旦页面被加载到父框架中... JavaScript运行时被清除...所以在它可以触发之前, – user1600124