2012-08-07 68 views
1

我试图创建一个javascript,在新窗口中打开.jpg和.pdf文件,并且在单击文件链接时不断收到一个令人讨厌的错误。从挪威语翻译,弹出错误说:javascript:window.open抛出无效的url错误

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

当我点击那个错误消息的“确定”,新的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调用返回一个像这样的网址:

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

我对JavaScript的一个新秀,所以请回复:)

时记住这一点(代码片段兰迪·威廉姆斯缺口@http://www.synergyonline.com/Blog/Lists/Posts/Post.aspx?ID=18

回答

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; 
    } 
} 
+0

谢谢mplungjan,即做到了! – user1582362 2012-08-08 07:10:29

0

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

相关问题