Javascript window.open切断了特殊字符的链接

时间:2015-03-11 20:57:01

标签: javascript

这是我关于stackoverflow的第二个问题所以请原谅任何意外的新手。

我查看了建议的重复帖子 - How to pass special characters to javascript window.open in URL using paper.add method?

但该帖子不包含答案。

基本上我想要实现的是通过javascript打开文件链接(我的用户都是IE)。所述链接可以包含散列字符 - “#”。如果是这样,链接会在哈希标记处被切断(显然不起作用)。

通过对URI进行编码然后在同一窗口中打开它,我找到了解决方法。我的要求是在新标签中打开它。我无法弄清楚如何使用window.open()。

以下代码在同一窗口中打开文件。不好。

 $(document).on("click", "#LANPath", function (e) {
    var str = 'J:/Product Compliance/FACTs/+FACTS Test/Test_Attachment_Single_Premium_Group_App_Sample # Copy.pdf';

    var url = encodeURIComponent(str);
    var url2 = url.replace(/#/g, '%23');

    window.location.href = 'file:///' + url2;
});

以下功能会切断#的网址并且不会打开任何内容。更糟糕的是。

$(document).on("click", "#LANPath", function (e) {
    var str = 'J:/Product Compliance/FACTs/+FACTS Test/Test_Attachment_Single_Premium_Group_App_Sample # Copy.pdf';

    var url = encodeURIComponent(str);
    var url2 = url.replace(/#/g, '%23');

    var win = window.open( 'file:///' + url2, '_blank');
    win.focus();
});

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但无论如何我都会提交答案,因为我今天才发现同样的问题。

我能够使用Internet Explorer复制此行为,我设法通过以下两个步骤拆分操作来绕过它:打开新窗口然后浏览所需的URL。如问题背景:

var win = window.open();
win.location = 'file:///' + url2;
win.focus();