我发现一个问题,已经有可能的解决方案了,但在阅读之前我已经尝试过建议的方法,甚至说这个方法是不一致的。所以我想知道为什么这个方法不起作用:
$("img").click(function() {
var imgwindow = window.open('imgwin.html','','width=460,height=345');
alert(imgwindow.find("img").attr("src"));
});
目标是将新窗口的
imgwin.html
的默认src
,因此它应该警报该URL。但是,我只得到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对话框小部件,但在这种情况下,图像实际上是网络摄像头提供的,用户将希望将其弹出到主窗口之外,并且即使关闭主窗口也保持打开状态,因此虽然我感谢一般情况下避免弹出窗口的移动,但请避免建议涉及同一窗口小部件的替代方案。谢谢。