javascript:window.open抛出无效的url错误

时间:2012-08-07 15:40:45

标签: javascript url window.open

我正在尝试创建一个在新窗口中打开.jpg和.pdf文件的javascript,并且在单击文件链接时我会收到一个非常烦人的错误。从挪威语翻译,弹出错误说:

页面无效的网址(网站?):”。

当我在该错误消息上单击“确定”时,新的pdf / jpg窗口将按预期打开。

如何摆脱完全冗余的错误消息?

<script language="javascript" type="text/javascript">
    _spBodyOnLoadFunctionNames.push("OpenPDFInNewWindow()"); 

    function OpenPDFInNewWindow()
    {      
      var aAllLinks = document.links;     
      for(var i=0;i<aAllLinks.length;i++)
      {
         var oA = aAllLinks[i];
         var sHREF = oA.href.toLowerCase();

         if(sHREF.indexOf(".jpg") > 0 || sHREF.indexOf(".pdf") > 0)
            oA.href="javascript:window.open('"+oA.href+"','test','width=300').focus();";
      }
    }
    </script>

脚本检查页面是否包含含有相关文件扩展名的标签,然后在其href属性中添加window.open命令。

我已经尝试过IE9和Chrome,这两款浏览器都投入了相同的考验。这在IE中很有用。我在window.open调用中尝试了许多不同的参数组合。 oA.href调用返回一个这样的URL:

http://<server>/arbeidsrom/ET24130/dokumenter/image.jpg

我是javascripts的新手,所以请在回复时记住:)

(代码片段来自Randy Williams @ http://www.synergyonline.com/Blog/Lists/Posts/Post.aspx?ID=18

2 个答案:

答案 0 :(得分:0)

这是因为大多数浏览器没有本机功能来显示除基于Web的文件格式之外的文件格式。特别是.pdf。您可能为IE安装了.pdf插件,而不是其他浏览器。我建议而不是你正在做什么,打开一个 包含 一个.pdf的新页面,而不是 一个。

答案 1 :(得分:0)

试试这个

if(sHREF.indexOf(".jpg") !=-1 || sHREF.indexOf(".pdf") !=-1) {
  oA.onclick=function() {
    var w=window.open(this.href,'test','width=300'); 
    if(w) {
      w.focus(); 
      return false
    }; 
    return true;
  }
}