好的,我在这里疯了。我正在尝试实现一个基本的弹出窗口来显示图像。如果我的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文件。当使用模板工具的多个脚本(在我的情况下为Template Toolkit)创建div时,有一些关于div的层,这使得head元素中的原始script元素看起来对于更深的子元素是不可见的。
我不确切知道发生了什么,我没有时间去探索它。我添加了这个编辑,以防万一其他人有类似的问题,并在某种程度上偶然发现这个线程。如果有人理解这种现象,并且可以解释,请做。
编辑2:
window.open方法的“name”参数不能包含弹出窗口在IE中工作的空格。谢谢M $。
答案 0 :(得分:3)
这段代码是我认为最接近万无一失的代码。
经过测试
<html>
<head>
<script type="text/javascript">
window.onload=function() {
document.getElementById('popup').onclick=function() {
var w = window.open(this.href, this.target,
'width=500,height=500,scrollbars=no');
return (!w); // opens in new window/tab if allowed
}
}
</script>
</head>
<body>
<a id="popup" href="test.jpg" target="test_name">test_name</a>
</body>
</html>
答案 1 :(得分:1)
使用target =&#34; _blank&#34;
<a href="whatever" target="_blank"> ...
来自HTML或
window.open(url, '_blank', options)
来自javascript
答案 2 :(得分:0)
随机设置新窗口标题
onclick="PopupCenter(this.href,'random','600','700','yes'); return false;"
并且在功能中:
if(title=='random')
{
title = randomID();
}
答案 3 :(得分:-1)
试试这个
function mypopup()
{
mywindow = window.open("http://www.test.com", "mywindow", "location=1,status=1,scrollbars=1, width=100,height=100");
}
答案 4 :(得分:-2)
确保将您的javascript代码放在Head块中
<head>
<script type="text/javascript" language="JavaScript">
function cleanPopup(url, title) {
window.open(url, title, 'width=500,height=500,scrollbars=no');
return false;
}
</script>
在身体里:
<a href="" onclick="cleanPopup('test.jpg','test_name')">test_name</a>
它对我有用,在Firefox和IE中没有任何问题