Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript Onclick window.open在IE中无法正常工作_Javascript - Fatal编程技术网

JavaScript Onclick window.open在IE中无法正常工作

JavaScript Onclick window.open在IE中无法正常工作,javascript,Javascript,我希望我的问题是一个简单的答案,但不幸的是,我没有一个伟大的javascript知识。我花了一天的大部分时间在谷歌上搜索这个问题,并尝试了各种解决办法,但迄今为止,一切都没有起到足够的作用 我正在运行一个非常简单的JavaScript,这样当单击一个图像时,就会打开一个单独的窗口。这将在除IE之外的所有其他浏览器(包括手机)中运行。以下是我在头标签中包含的内容- <script type="text/javascript"> function open_win() { windo

我希望我的问题是一个简单的答案,但不幸的是,我没有一个伟大的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>

函数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");