Windows Phone 8アプリ、WebBrowserコントロール。NavigateToString
(設定後)を介してHTMLのチャンクをロードしますIsScriptEnabled=true
。しばらくして(ロードされてからずっと後)、InvokeScriptを使用してページでJavaScriptを呼び出しています。
<script>
要素内でインラインで定義されているJavaScript関数を呼び出すと、期待どおりに機能します。外部JSファイルで定義されているものを呼び出すと、呼び出されず、HRESULT 0x80020006(「名前が見つかりません」)からの例外がスローされます。
外部スクリプトファイルは、私のアプリパッケージからロードされます。HTML文字列には、パッケージのフォルダーへのURL(を介して取得<base>
)を含む要素があり、要素にはファイル名のみが含まれています。そのフォルダにはスタイルと画像もあります-それらはうまくロードされます。file://
Package::Current->InstalledLocation
<script>
HTMLには何もDOCTYPE
ありませんxmlns
-私はそれらのものが時々JavaScriptを捨てることができることを知っています。
外部スクリプトファイルは有効です。これは、それぞれのWebViewコントロールで機能するAndroidから直接取得されたものです。私が呼び出そうとしている関数はとにかく空です。念のため、JavaScriptの構文的には安全です。
これは、理論的には、ある種のクロスドメインスクリプティングの問題である可能性があります。技術的には、スクリプトはfile://
URLから取得されますが、ページ自体はURLから取得されません。怪しげなスクリプトが呼び出されないようにするシステムコードの一部が邪魔になっている可能性があります。