Windows Phone 8 应用程序,WebBrowser 控件。NavigateToString
我通过(设置后)加载了一大段 HTML IsScriptEnabled=true
。一段时间后(在它加载很久之后),我使用 InvokeScript 在页面上调用了一些 JavaScript。
<script>
当我调用在元素内内联定义的 JavaScript 函数时,它按预期工作。当我调用一个在外部 JS 文件中定义的文件时,它不会,并且会引发 HRESULT 0x80020006(“找不到名称”)的异常。
外部脚本文件是从我的应用程序包中加载的。在 HTML 字符串中,有一个<base>
元素包含file://
指向包文件夹的 URL(通过 检索Package::Current->InstalledLocation
),该<script>
元素仅包含文件名。该文件夹中还有样式和图像-它们可以正常加载。
HTML 没有DOCTYPE
也没有xmlns
——我知道这些东西有时会使 JavaScript 失效。
外部脚本文件是有效的 - 它直接来自 Android,它在相应的 WebView 控件上工作。我试图调用的函数无论如何都是空的,为了安全起见,JavaScript 语法方面。
这在理论上可能是某种跨域脚本问题。从技术上讲,脚本来自file://
URL,而页面本身根本不来自 URL。一些确保没有调用可疑脚本的系统代码可能会妨碍您。