我希望我的问题很容易回答,但不幸的是我对javascript知之甚少。我花了很多时间来搜索问题并尝试各种解决方法,但迄今为止没有任何工作能够充分发挥作用。
我正在运行一段非常简单的JavaScript,以便在单击图像时打开一个单独的窗口。除了IE之外,这将适用于所有其他浏览器(包括移动设备)。以下是我在头标中包含的内容 -
<script type="text/javascript">
function open_win() {
window.open("music/player/song-of-my-soul.html", "_blank, _top", "toolbar=no, location=no, directories=no, status=no, menubar=mo, scrollbars=yes, resizable=no, toolbar=no, copyhistory=yes, width=240, height=400,");
}
</script>
然后我创建了一个带有背景图像和悬停图像的div,点击它时应打开上面的页面。以下是我在div中放置的行 -
a href =“#”alt =“听取样本”title =“听取样本”class =“play-link”onclick =“open_win()”&gt;
这适用于所有其他浏览器,但不能在IE中使用。我已经尝试了几种方法来引用头部的JavaScript,但它们都不会起作用。
我正在测试此页面的页面可以在下面看到 - http://www.christlikemusic.com/song-of-my-soul.php#中间朝向底部的“播放”按钮是我链接的图像。
如果有人对我如何解决这个问题有任何想法,我将非常感激!
大卫
答案 0 :(得分:6)
Windows选项列表中有一个尾随逗号:
[snip] ... copyhistory=yes, width=240, height=400,");
^--- here
IE非常顽固地对待尾随逗号,并且如果它在几英里的范围内,它会定期自我调整。
答案 1 :(得分:2)
窗口名称不能有空格。
因此您需要将"_blank, _top"
更改为其他内容。
答案 2 :(得分:1)
尝试使用void函数包装window.open:
编辑:在height
规范之后,您还有一个逗号逗号。
<script type="text/javascript">
function open_win() {
void(window.open("music/player/song-of-my-soul.html", "_blank, _top", "toolbar=no, location=no, directories=no, status=no, menubar=mo, scrollbars=yes, resizable=no, toolbar=no, copyhistory=yes, width=240, height=400"));
}
</script>
这是我为打开子窗口而创建的方法。如果你愿意,你可以使用它:
openChildWindowWithDimensions = function(url, width, height, showMenu, canResize, showScrollbars) {
var childWindow = window.open(url, "", "\"width=" + width + ",height=" + height + ",menubar=" + (showMenu ? "1" : "0") + ",scrollbars=" + (showScrollbars ? "1" : "0") + ",resizable=" + (canResize ? "1" : "0") + "\"");
if (childWindow){
childWindow.resizeTo(width, height); //IE9 bug
}
}
答案 3 :(得分:0)
问题是第二个论点。尝试
window.open("music/player/song-of-my-soul.html", "_blank", "toolbar=no, location=no, directories=no, status=no, menubar=mo, scrollbars=yes, resizable=no, toolbar=no, copyhistory=yes, width=240, height=400");
第二个参数是要打开的窗口的名称。它必须是有效的名称,在您的情况下,您已将其作为_blank, _top
传递,这不是有效名称。它可以是_blank
。
如果您使用的是IE8 / IE9之类的新IE版本,则可以使用IE附带的开发人员工具运行该命令,并发现window.open
导致invalid argument
错误。