我正在使用带有 javaScript 界面的 WebView。我想做的就是在勾选了某些复选框的情况下更改跨度的内部 html。
下面是 strings.xml 中的字符串 fragment 。表单将在 onSubmit 上调用此函数,如果未通过则不应继续。问题是我无法让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 insideHtml 在 WebView 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435439/