14

与此处相同的问题,但我需要转到 Firefox 中的本地 URL

我尝试使用类似的代码

var url = "file:///E:/Test/Test.htm";
window.location.href = url;

但 id 没有用。尝试使用window.location = url;并尝试使用url = "file://E:/Test/Test.htm";(双“/”而不是三重“/”),但仍然无法正常工作。

谢谢

4

5 回答 5

16

当我尝试这个时:

window.location.href = "file:///C:/Users/Cerbrus/Documents/SomeFile.js"

(是的,这是一条有效的路径。)

Chrome 向我抛出了这个错误:

不允许加载本地资源:file:///C:/Users//Documents/File.js

这是因为 JavaScript 无法访问本地文件(因为它被沙盒化了),并且您正在使用 JavaScript 设置新的 url。
“沙盒”是指某项技术已限制(或禁止)访问超出特定范围。对于浏览器,这意味着页面上运行的代码无法访问您系统上的文件(否则,只需查看用户的文件系统,就很容易“窃取”数据)。

然而

说,我有2个文件:

C:/Test/Test.htm
C:/Test/Test1.htm

Test.htm仅包含以下内容:

<script>
    window.location = "file:///C:/Test/Test1.htm";
</script>

这实际上将重定向到Test1.htm,因为目标文件与源文件所在的域位于同一域中。

于 2012-12-27T09:42:39.180 回答
5

我猜它不允许从 javascript加载本地资源

除非您有一个本地 http 服务器正在运行:

var url = "http://localhost/MySite/Default.aspx";
window.location.href = url;

它会工作

于 2012-12-27T09:40:19.883 回答
1

您无法从本地系统访问该文件。由于浏览器在沙盒模式下工作,您不能破坏沙盒并访问本地文件系统,因为它会违反安全性。尝试使用 AJAX 请求直接加载,否则由于沙盒限制,您尝试执行的操作是不可能的,并且也不符合安全策略。

于 2012-12-27T09:41:33.253 回答
0

window.location.href = window.location.pathname + (你的本地文件名或路径)

于 2019-03-13T13:58:21.413 回答
-5
window.open(url); // here url can be anything
于 2012-12-27T09:41:41.440 回答