JavaScript Onclick window.open在IE中无法正常工作
我希望我的问题是一个简单的答案,但不幸的是,我没有一个伟大的javascript知识。我花了一天的大部分时间在谷歌上搜索这个问题,并尝试了各种解决办法,但迄今为止,一切都没有起到足够的作用 我正在运行一个非常简单的JavaScript,这样当单击一个图像时,就会打开一个单独的窗口。这将在除IE之外的所有其他浏览器(包括手机)中运行。以下是我在头标签中包含的内容-JavaScript Onclick window.open在IE中无法正常工作,javascript,Javascript,我希望我的问题是一个简单的答案,但不幸的是,我没有一个伟大的javascript知识。我花了一天的大部分时间在谷歌上搜索这个问题,并尝试了各种解决办法,但迄今为止,一切都没有起到足够的作用 我正在运行一个非常简单的JavaScript,这样当单击一个图像时,就会打开一个单独的窗口。这将在除IE之外的所有其他浏览器(包括手机)中运行。以下是我在头标签中包含的内容- <script type="text/javascript"> function open_win() { windo
<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>
函数open_win(){
window.open(“music/player/song of my soul.html”、“\u blank、\u top”、“toolbar=no、location=no、directories=no、status=no、menubar=mo、scrollbars=yes、resizeable=no、toolbar=no、copyhistory=yes、width=240、height=400”);
}
然后,我创建了一个带有背景图像和悬停图像的div,单击它应该会打开上面的页面。以下是我在div中放置的行-
a href=“#”alt=“收听样本”title=“收听样本”class=“播放链接”onclick=“打开”win()”>
这在其他浏览器中都能正常工作,但在IE中不起作用。我尝试了几种方法在头部引用JavaScript,但都不起作用
我正在测试这一点的页面可以在下面看到——中间底部的“播放”按钮就是我链接的图像
如果有人对我如何解决这个问题有任何想法,我将不胜感激
David您在windows选项列表中有一个尾随逗号:
[snip] ... copyhistory=yes, width=240, height=400,");
^--- here
众所周知,IE对逗号的尾随很固执,如果在几英里之内,它就会经常吐出一身来。尝试包装窗口。使用void函数打开: 编辑:在
高度
规范后面还有一个逗号
<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>
窗口名不能有空格
因此,您需要将
“\u blank,\u top”
更改为其他内容。问题是第二个参数。试一试
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");
第二个参数是要打开的窗口的名称。它必须是一个有效的名称,在您的情况下,您将其作为\u blank,\u top
传递,这不是一个有效的名称。它可以是空白的
您可以找到更多有效值和IE定义
如果您使用的是新的IE版本,如IE8/IE9,那么您可以使用IE附带的开发者工具运行该命令,并发现
window.open
抛出了一个无效参数
错误。而JavaScript对语法的不宽容是出了名的;)@马克B非常感谢你指出这一点。我还在习惯JS。在IE中,页面中有一些javascript错误,你检查了它们是什么吗?检查出来,非常感谢。我能改变它,这很有效。感谢阿伦,这正是问题所在。你的建议非常有效!非常感谢你的帮助,谢谢你指出这一点,詹姆斯。谢谢你分享你的方法。不过,我还是能够用其他建议中的一个来解决这个问题。再次感谢@James Johnson:使用void函数解决了我的问题(我在sitemapnode url属性中使用了windows.open。在除IE之外的所有浏览器中都可以正常工作。使用void,它在所有浏览器中都可以正常工作)。
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");