3

phonegapを使用してjQueryモバイルアプリを構築しています。Unsafe JavaScript attempt to access frameiframe (おそらく webkit) でページにアクセスしようとしたときの問題があります。フレーム化されたページと親ページの両方がローカルにあり、これは で始まりfile:///ます。I know where is a question like this Unsafe JavaScript attempts to access frame in Google Chrome But I cannot passing the --allow-file-access-from-files switch at startupon my phone.And I also want to deploy toインターネット上の私のアプリ.これを解決する他のオプションはありますか? ブラウザ上で何も変更する必要がない方が良いはずです。ありがとうございます。

4

1 に答える 1

2

Webkitが同じルールに従っているかどうかはわかりませんが、前例があります。

https://developer.mozilla.org/en/Same-origin_policy_for_file%3a_URIs

Gecko 1.8以前では、任意の2つのファイル:URIは同一生成元と見なされます。つまり、ローカルディスク上のHTMLファイルは、ローカルディスク上の他のファイルを読み取ることができます。

Gecko 1.9以降、ファイルは他の特定のファイルのみを読み取ることができます。具体的には、元のファイルの親ディレクトリがターゲットファイルの祖先ディレクトリである場合にのみ、ファイルは別のファイルを読み取ることができます。ただし、この方法でディレクトリをロードすることはできません。

たとえば、別のファイルbar.htmlにアクセスするファイルfoo.htmlがある場合、ロードは、bar.htmlがfoo.htmlと同じディレクトリにあるか、fooと同じディレクトリに含まれるディレクトリにある場合にのみ成功します。 .html。

このポリシーは、XMLHttpRequest、XSLT、XBLなど、同一生成元チェックを実行するすべてのものに影響します。

クロスウィンドウDOMアクセスの場合、各ファイルは個別のオリジンとして扱われますが、1つの例外があります。ファイルが別のファイルからロードされ、それ以外の場合はこの同一生成元ポリシーに従ってロードできる場合、それらは同じであると見なされます。元。このロードは、サブフレーム、リンク、ロケーションセット、window.open()の呼び出しなどを介して発生する可能性があります。

たとえば、ファイル/home/user/foo.htmlがフレームセットであり、フレームの1つが/home/user/subdir/bar.htmlである場合、フレームとフレームセットは同じオリジンを共有していると見なされます。一方、ファイル/home/user/subdir/foo.htmlがフレームセットであり、フレームが/home/user/bar.htmlである場合、フレームとフレームセットは異なるオリジンを持っていると見なされます。

ユーザーがファイルに同一生成元ポリシー(URI)を厳密に適用したくない場合は、新しいsecurity.fileuri.strict_origin_policy設定(デフォルトはtrue)をfalseに設定できます。

于 2011-08-22T15:33:55.447 に答える