javascript - 无法让 javascript innerHtml 在 WebView 上工作

标签 javascript android

我正在使用带有 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/

相关文章:

javascript - 在带有 if 语句的函数中检查某物是否为数字

Android 4.0 检测用户是否有硬件返回/主页键

android - android-以编程方式打开/关闭ShapeDrawable(RectShape)的眨眼/闪烁动画/效果

javascript - AVG(COLUMN_SCORE)未生成平均值

javascript - 正则表达式捕获不在 anchor 标记中的链接

android - 如何为 Jetpack Compose 中的所有 child 设置 fillMaxWidth()?

Android widget AppBarLayout 总是排在最前面

java - 在PhoneGap应用中包含Admob时出错

javascript - 创建extjs存储数据记录失败

javascript - 使用 <xsl : param> on <xsl: for-each> doesn't work