Android Javascript在4.4中不起作用,但它适用于4.0.x.

时间:2014-07-02 14:35:11

标签: javascript android webview

我正在尝试允许用户点击行中的任意位置并按照其中的说明触发链接:Adding an onclick event to a table row

这适用于WebView中的以下生成代码:

h += "<script>\r\n" +
        "function HandleTable(table) {\r\n" + 
        "    var rows = table.getElementsByTagName(\"tr\");\r\n" + 
        "    for (i = 0; i < rows.length; i++) {\r\n" + 
        "        var currentRow = table.rows[i];\r\n" + 
        "        var createClickHandler = \r\n" + 
        "            function(row) \r\n" + 
        "            {\r\n" + 
        "                return function() { \r\n" + 
        "                      var cell = row.getElementsByTagName(\"td\")[0];\r\n" + 
        "                      var id = cell.innerHTML;\r\n" + 
        "                      window.location.href = id;\r\n" + 
        "                  };\r\n" + 
        "            };\r\n" + 
        "\r\n" + 
        "        currentRow.onclick = createClickHandler(currentRow);\r\n" + 
        "    }\r\n" + 
        "}";

然后像这样放桌子:

        h += "<table width=\"100%\" id=\"tbl\" class=\"...\">";

脚本:

        h += "<script>\r\n";
    h += "var t = document.getElementById(\'tbl\');\r\n";
    h += "HandleTable(t);\r\n";
    h += "</script>\r\n";

然后我将String h加载到WebView。这在我的4.0.x平板电脑上工作正常,但不在我的4.4手机中。

我是否想念KitKat?

感谢。

1 个答案:

答案 0 :(得分:0)

发现问题,似乎KitKat返回了cell.innerHTML的无效内容。

切换到

<tr onclick="window.location.href='test'">

代替。