我在我的项目中添加了一个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.
这是文件夹结构:
答案 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
网址链接到您的脚本文件。