外部脚本在Windows Phone App 8.1中不起作用

时间:2015-03-11 12:31:37

标签: javascript c# windows-phone-8 webview

我在我的项目中添加了一个WebView。如果我导航到包含外部JavaScript文件的html文件,则它们不起作用。如果我将javascript代码硬编码到html文件中,它可以正常工作。

这是html部分:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <script type="text/javascript" src="testjs.js"></script>
</head>
<body>
    <div id="abcd"></div>
    <br/>
    hello! this is a simple html block. 
</body>
</html>

这是javascript部分:

document.getElementById("abcd").innerHTML = "New text!";

当我打开webview时会显示

hello! this is a simple html block.

但如果javascript代码有效,则会显示

New Test! hello! this is a simple html block.

这是文件夹结构:

enter image description here

2 个答案:

答案 0 :(得分:3)

src =“testjs.js”是正确的。该问题与路径无关。

[更新1]

您的代码应该像我们通常用于Web开发一样工作。但似乎我们需要确保脚本中使用的html元素已经初始化,因此我们必须将它放到body元素的末尾。请尝试以下HTML代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    
</head>
<body>
    <div id="abcd">a</div>
    <br />
    hello! this is a simple html block.

    <script type="text/javascript" src="testjs.js"></script>
</body>
</html>

[更新2]

另请检查您是否已将testjs.js构建操作更改为内容。转到解决方案资源管理器 - &gt;右键点击testjs.js - &gt; 属性 - &gt;将构建操作更改为内容。这将确保.js文件将作为您应用的一部分进行部署。

答案 1 :(得分:2)

WebView msdn页面表明,出于安全原因,除了以下内容之外,您无法链接到本地​​内容:

  

但是,您仍然可以使用ms-appx-web方案链接到应用包中的HTML内容,也可以使用http和https URI方案链接到Web内容。

因此,您应该可以使用ms-appx-web:///testjs.js网址链接到您的脚本文件。