我需要让应用程序的用户通过单击网页内的链接打开文件夹.文件夹的路径位于网络上,可以从任何地方访问.我可能确定没有简单的方法可以做到这一点,但也许我错了?
我正在开发一个JavaScript应用程序,它可以从Web服务器(通过http)或文件系统(在文件:// URL上)运行.
作为此代码的一部分,我需要使用XMLHttpRequest将文件加载到与页面和页面子目录相同的目录中.
在Web服务器上执行时,此代码可以正常工作("PASS"),但在文件系统运行时,在Internet Explorer 8中无效("FAIL"):
<html><head>
<script>
window.onload = function() {
var xhr = new XMLHttpRequest();
xhr.open("GET", window.location.href, false);
xhr.send(null);
if (/TestString/.test(xhr.responseText)) {
document.body.innerHTML="<p>PASS</p>";
}
}
</script>
<body><p>FAIL</p></body>
Run Code Online (Sandbox Code Playgroud)
当然,起初它失败了,因为文件系统上根本没有脚本可以运行; 用户会被提示一个黄色条,警告"为了帮助保护您的安全,Internet Explorer已限制此网页运行可以访问您的计算机的脚本或ActiveX控件."
但即使我点击栏和"允许被阻止的内容",页面仍然会失败; 我在xhr.open调用中遇到"Access is Denied"错误.
这让我很困惑,因为MSDN说"出于开发目的,允许从本地计算机区域使用file://协议." 这个本地文件应该是Local Machine Zone的一部分,对吧?
我怎样才能获得这样的代码?我很好地提示用户提供安全警告; 我不能强迫他们关闭控制面板中的安全性.
编辑:事实上,我不是在我的情况下加载XML文档; 我正在加载纯文本文件(.txt).
好的,我看到这两个问题:
但我不确定他们是否回答了我的问题.我正在尝试不安装任何PDF阅读器(Adobe很糟糕)并知道Chrome将打开我从互联网上打开的PDF.所以我的问题是,如果PDF是我的机器本地的,它为什么不起作用?是否有解决方法/插件/其他浏览器可用于实现此目的?
安全的论点完全是假的; 我在互联网上打开的PDF如何比我本地机器上的PDF更安全/更安全?
我有一个包含一些表格的页面.所有链接在IE中都可以正常工作.当用户点击超链接时,它们很好地在新选项卡中打开; 但是,我意识到使用Chrome时链接无法打开.我一直点击但没有打开.打开文件的唯一方法是复制超链接,在Chrome中打开新标签,粘贴并转到.
<a href="FILE:\\outsideserver\files\shared\form1.pdf" target="_blank">Form1</a>
Run Code Online (Sandbox Code Playgroud)
这是浏览器的功能吗?因为我用FireFox尝试过它也不起作用?有办法绕行吗?没有在浏览器中安装任何东西?因为我的用户喜欢Chrome.谢谢你提前回复.