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

标签 javascript android

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

相关文章:

android - 3 种布局 - 中间是灵活的

java - Android运行时错误: Parcel unable to marshal value

java - 对象变为空

javascript - express4.2.0 session 未定义

javascript - 开始 JavaScript - 在内部 HTML 中显示温度值

java - Android java 屏幕作为按钮

android - 如何在移动设备(iOS 和 Android)上使用 Flutter 将照片/视频移动到相册?

javascript - 通过 Node.JS 的 Telegram 机器人内联键盘

javascript - 在 Node.js 的 setTimeout() 回调中绑定(bind) `this`

javascript - 使用 Mustache JS 进行 Ajax 分页?