【问题标题】:JavaScript injection into Java WebViewJavaScript 注入 Java WebView
【发布时间】:2018-12-14 18:28:52
【问题描述】:

晚上好, 我正在尝试让以下 JavaScript sn-p 在 Android 应用程序的 WebView 中运行。相信我,我在这里研究了几页,我也做了类似的事情。 那是sn-p:

function myFunction() {
var selection = window.getSelection();
var range = selection.getRangeAt(0);
var newNode = document.createElement("span");
newNode.setAttribute("style", "background-color: #FFF000;");
range.surroundContents(newNode); 

}

我正在开发一个浏览器应用程序,我希望能够突出显示文本段落。为此,我制作了一个自定义文本选择菜单,其中包含一个 onClickListener。

webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    webView.loadUrl(
        "javascript:(function() { " +
            "var element = document.getElementById('hplogo');"
            + "element.parentNode.removeChild(element);" +
        "})()");
}});

该示例运行良好,我想将其调整为我的 JavaScript sn-p。我的代码如下:

webView.loadUrl("javascript:(function() { " +
                            "var selection = window.getSelection();" +
                            "var range = selection.getRangeAt(0);" +
                            "var newNode = document.createElement('span');"+
                            "sel.addRange(range);"+
                            "newNode.setAttribute('style', 'background-color: #FFF000;');"+
                            "range.surroundContents(newNode);"+
                            "})()");

这让我彻底疯了。 提前致谢。

【问题讨论】:

    标签: javascript java android webview


    【解决方案1】:

    你的javascript代码有“sel.addRange”而不是“selection.addRange”的问题

    【讨论】:

    • webView.getSettings().setJavaScriptEnabled(true); 可能也是必需的。
    • 感谢您提及它,但这一定是在此帖子的复制/粘贴过程中发生的。我改回来了,但仍然没有运气。我启用了 JavaScript。感谢 Martin 和 John,但还是没有运气。
    • @DanielHegemann 当您为 I/chromium 过滤 log-cat 时,它说了什么?
    • 约翰和马丁,我能说什么,它现在有效。 “选择”是正确的,我已经看到了,因为 Martin 向我展示了如何调试 WebView。谢谢你们的帮助,伙计们。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    相关资源
    最近更新 更多