【发布时间】:2010-03-22 01:38:10
【问题描述】:
我发现一个问题已经有了可能的解决方案,但我在阅读之前已经尝试过建议的方法,它甚至说它不一致。所以我想我想知道为什么这不起作用:
$("img").click(function() {
var imgwindow = window.open('imgwin.html','','width=460,height=345');
alert(imgwindow.find("img").attr("src"));
});
目标是将新窗口的img 设置为与用户单击以打开新窗口的图像相同的src。但是在上面的场景中,我只是试图进入新窗口来获取它已经设置的 src。我已经为图像编写了imgwin.html,并使用了默认的src,因此它应该提醒该网址。相反,我只收到undefined。
我还尝试了以下方法(后端应该相同),但结果相同:
$("img").click(function() {
var imgwindow = window.open('imgwin.html','','width=460,height=345');
alert($("img",imgwindow).attr("src"));
});
我什至尝试了将 imgwindow 变量包装在 $() 中的变体,以防 jquery 没有将变量作为 DOM 元素拾取。
我唯一能猜到的是,由于window.open() 是一种方法,jquery 不会将其视为 DOM 元素,即使基本 javascript 教程中的所有文档都将变量视为打开窗口的方法和指向窗口内部 DOM 的指针。
注意:
我通常更喜欢并向其他开发人员推荐使用 jquery-ui 对话框小部件,但在这种情况下,图像实际上是用户想要从主窗口弹出并打开的网络摄像头源,即使主窗口已关闭,因此,虽然我很欣赏从弹出窗口中的移动,但请避免建议涉及相同窗口小部件的替代方案。谢谢。
【问题讨论】:
标签: javascript jquery dom browser window