我正在使用带有 javaScript 界面的 WebView。如果勾选了某些复选框,我要做的就是更改跨度的内部 html。
下面是我在 strings.xml 中的一个字符串 fragment 。表单将在提交时调用此函数,如果未通过,则不应继续。问题是我无法让 innerHtml 工作(每次都返回 true)。
这有效
<script type=\"text/javascript\" language=\"javascript\">
function pass() {
return javaInterface.checkboxPass();
/*
if(passed) {
//change the instructions
document.getElementById(\"txtInstructions\").innerHTML = \'Loading Website...\';
}
return passed;
*/
}
</script>
每次都返回 true
<script type=\"text/javascript\" language=\"javascript\">
function pass() {
var passed= javaInterface.checkboxPass();
if(passed) {
//change the instructions
document.getElementById(\"txtInstructions\").innerHTML = \'Loading Website...\';
}
return passed;
}
</script>
这是文档正文中的跨度
<span id=\"txtInstructions\">%1$s</span>
我究竟做错了什么?
最佳答案
我不知道为什么代码的行为不像你想要的那样,但我可以告诉你,你正试图以一种过于复杂的方式来做这件事。将 JavaScript 和 HTML 存储在 XML 文件中似乎是一个真正的坏主意。我猜它是合法的 JavaScript,但是将变量命名为与其父函数相同的名称似乎是错误的,通常你不应该使用这种范围的微妙之处,它除了混淆之外没有任何好处。
关于javascript - 无法让 javascript innerHtml 在 WebView 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435439/