我有一组使用 JavaScript 生成导航工具、索引、TOC 等的 HTML 文件。这些文件只能在本地打开(例如,file://),不能在 Web 服务器上提供。从 Firefox 3.x 开始,我们在单击将为目录生成新框架的导航按钮时遇到以下错误:
Error: Permission denied for <file://> to get property Location.href from <file://>.
我知道这是由于 FF 3.x 中的安全措施导致的,而 2.x 中没有,因为 document.domain 不匹配,因此假设这是跨站点脚本并拒绝访问。
有没有办法解决这个问题?也许只是在 Firefox 中关闭/打开的开关?一些 JavaScript 代码来绕过它?
最佳答案
在火狐中:
- 在地址栏输入about:config,
- 然后在搜索栏中输入network.automatic-ntlm-auth.trusted-uris
- 输入逗号分隔列表 服务器(即 内联网、家庭、公司)
另一种方法是编辑 users.js。
在 users.js 中,写:
user_pref("capability.policy.policynames", "localfilelinks");
user_pref("capability.policy.localfilelinks.sites", "http://site1.com http://site2.com");
user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
但是如果你想停止所有验证,只需将以下行写入 users.js 文件:
user_pref("capability.policy.default.checkloaduri.enabled", "allAccess");
关于javascript - 打开本地文件时如何绕过 document.domain 限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1289063/