jQuery getScript和本地文件系统 - 限制/替代?

时间:2010-05-22 00:20:00

标签: javascript jquery

现在我正在开发一个基于本地文件系统的帮助系统。它适用于未在启用Internet的计算机上使用的产品,因此它必须是独立的网页,不依赖于Web服务器。

这引入了一些挑战。也就是说,文件所在的目录结构需要“向上和向上”导航以访问显示帮助系统所需的某些.js文件。这个用法是使用jQuery getScript函数实现的,但我在本地文件系统上遇到了一些问题。

乍一看,似乎我的网页是在C:/ dev / webpage / html /目录下提供的,而我需要的文件是在C:/ dev / webpage / js /(topic)/ file.js,我可以构建一个绝对路径(file:/// ...)并将其传递给getScript函数。

然而,在测试之后,似乎getScript函数似乎不允许我从html目录(具有网页主代码的html文件所在的位置)上升到某个级别。不幸的是,我无法更改目录结构,也无法更改.js文件结构/格式。

是否有替代方法可以加载/执行文件结构中需要“反复”的javascript文件?

谢谢,

编辑 - 我确实看过这个类似于我的问题,但在我的情况下,将数据更改为JSON格式的建议不是一个选项:Permission Denied using Javascript/jQuery on a local file

2 个答案:

答案 0 :(得分:6)

并不是说它不会让你升级......在某些情况下也是如此,这可能是你为了安全起见而在same-origin policy到位。这里有一些解决方案/选项。

选项1

您最好的长期选择是在框中设置网络服务器,编辑/保存文件,但通过http://localhost网址查看。如果您正在进行大量的HTML / CSS / JS工作,这将是获得您想要的最简单的方法。

选项2

或者,您可以在chrome(可能是其他浏览器)中加载页面并禁用该策略,这样您就可以完成一些工作(为开发创建不同的快捷方式,而不是一般用途!)。< / p>

对于Chrome,您可以通过编辑快捷方式并将--disable-web-security添加到命令行来禁用它,例如:

C:\Users\USERHERE\AppData\Local\Google\Chrome\Application\chrome.exe --disable-web-security

答案 1 :(得分:-1)

为什么不建立相对路径?绝对路径无论如何都是个坏主意,因为你无法100%确定安装路径。 (有些客户可能会安装到D:例如。)

如果页面是“file://something/html/thepage.html”,“../js/script.js”是否有效?