Jquery 不安全的JavaScript试图使用URL访问框架。它';是本地的

Jquery 不安全的JavaScript试图使用URL访问框架。它';是本地的,jquery,iframe,webkit,mobile-webkit,Jquery,Iframe,Webkit,Mobile Webkit,我正在用phonegap构建一个jQuery移动应用程序。 当我试图访问iframe(可能是webkit)中的页面时,出现了一个不安全的JavaScript试图访问frame的问题。框架页面和父页面都位于本地,以文件开始://。我知道这样的问题在哪里,但我不能在手机上传递启动时--allow file access from files开关。我也不想在internet上部署我的应用程序。还有其他解决方法吗?最好不需要对浏览器进行任何修改。谢谢。我不确定Webkit是否遵循相同的规则,但有一个先例

我正在用phonegap构建一个jQuery移动应用程序。
当我试图访问iframe(可能是webkit)中的页面时,出现了一个不安全的JavaScript试图访问frame的问题。框架页面和父页面都位于本地,以
文件开始://
。我知道这样的问题在哪里,但我不能
在手机上传递启动时--allow file access from files开关。我也不想在internet上部署我的应用程序。还有其他解决方法吗?最好不需要对浏览器进行任何修改。谢谢。

我不确定Webkit是否遵循相同的规则,但有一个先例

在Gecko1.8或更早版本中,任何两个file:uri都被认为是 同源。换句话说,本地磁盘上的任何HTML文件都可以 读取本地磁盘上的任何其他文件

从Gecko1.9开始,文件只允许读取某些其他文件 文件夹。具体来说,只有当父文件 源文件的目录是源文件的祖先目录 目标文件。但是,目录不能以这种方式加载

例如,如果您有一个访问另一个文件的foo.html文件, 仅当bar.html位于同一位置时,加载才会成功 目录为foo.html或在同一目录中包含的目录中 目录为foo.html

此策略影响执行相同来源检查的任何内容,包括 XMLHttpRequest、XSLT和XBL

对于跨窗口DOM访问,每个文件都被视为一个单独的文件 原点,但有一个例外:如果一个文件是从另一个 否则将能够按照此同源策略加载它, 它们被认为是同源的。这种负载可能会发生 通过子帧、链接、位置集、调用window.open()或 喜欢

例如,如果文件/home/user/foo.html是一个框架集,并且 框架是/home/user/subdir/bar.html,框架和框架集是 被认为有相同的起源。另一方面,如果文件 /home/user/subdir/foo.html是一个框架集,框架是 /home/user/bar.html,框架和框架集被认为具有 不同的起源

新的security.fileuri.strict_origin_策略首选项 默认值为true,如果用户不愿意,可以设置为false 对文件URI严格执行同源策略


谢谢你的建议。但是我已经把两个文件放在一个目录中了。firefox运行得很好,但是基于webkit的浏览器失败了。