【发布时间】:2012-04-10 10:12:44
【问题描述】:
好吧,我要疯了。我正在尝试实现一个基本的弹出窗口来显示图像。如果我的 javascript 代码在带有 onclick 属性的 HTML 标记中完全指定,则窗口会正确弹出。如果从 HTML 文档开头的脚本标记或单独的 js 文件调用我的 IDENTICAL javascript 代码,则链接(或在我的情况下为图像)不是在弹出窗口中打开,而是在同一个窗口中打开。
这会打开一个弹出窗口:
<a href="test.jpg" onclick="window.open('test.jpg','test_name','width=500,height=500,scrollbars=no'); return false">test_name</a>
这不会打开弹出窗口:
function cleanPopup(url, title) {
window.open(url, title, 'width=500,height=500,scrollbars=no');
return false;
}
<a href="test.jpg" onclick="return cleanPopup('test.jpg', 'test_name')">test_name</a>
任何帮助将不胜感激。
PS:在 Chrome 和 Firefox 中测试。
编辑:
我发现了我的问题。我原本只调用了head标签中的js文件。当使用模板工具(在我的例子中为模板工具包)的多个脚本创建 div 的层时,有一些东西使 head 元素中的原始脚本元素对更深的子元素似乎不可见。
我不知道到底发生了什么,也没有时间去探索它。我已经添加了这个编辑,以防其他人有类似的问题并且以某种方式偶然发现这个线程。如果有人理解这种现象,并能解释一下,请做。
编辑 2:
window.open 方法的“name”参数不能包含空格,以便弹出窗口在 IE 中工作。谢谢 M$。
【问题讨论】:
-
它确实为我打开了一个弹出窗口。检查你浏览器的 JavaScript 控制台,我很确定你在某处有语法错误。
-
我在标准文档模式下在 IE9、IE7-8(来自 IE9 DevTools)中对此进行了测试。我在最新版本的 FireFox、Chrome、Safari 和 Opera 中对此进行了测试。一切都按预期工作。可能您需要展示更完整的示例。
-
没有语法错误 - 但是如果有弹出窗口阻止程序,脚本可能会失败,然后只是跟随 url
-
请记住,这两个示例在同一个浏览器中的工作方式不同。事实上,我将两个示例并排放置,单击一个链接会打开一个弹出窗口,而另一个则会打开一个新选项卡。
标签: javascript window