Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将JQuery注入Android Webview_Javascript_Android_Jquery_Webview_Language Translation - Fatal编程技术网

Javascript 将JQuery注入Android Webview

Javascript 将JQuery注入Android Webview,javascript,android,jquery,webview,language-translation,Javascript,Android,Jquery,Webview,Language Translation,我正在做一个项目,翻译一个网页并在android应用程序中显示它。 通过使用以下代码将Javascript注入webview android,我成功地做到了这一点: @Override public void onPageFinished(WebView view, String url) { String jap = "お問い合わせ"; String eng = "Contact Us"; mWebView.loadUrl("javascript:(function

我正在做一个项目,翻译一个网页并在android应用程序中显示它。 通过使用以下代码将Javascript注入webview android,我成功地做到了这一点:

@Override
public void onPageFinished(WebView view, String url)
{

    String jap = "お問い合わせ";
    String eng = "Contact Us";

    mWebView.loadUrl("javascript:(function(){" +
            "var jpf = '"+jap+"';" +
            "var jp = new RegExp(jpf,'g');" +
            "var en = '"+eng+"';" +
            "document.body.innerHTML = " +
            "document.body.innerHTML.replace(jp,en);" +
            "})()");
}
然而,这是一种非常无效的方法,因为它将搜索每个术语并替换它。因此,我尝试使用jQuery的字典执行类似的操作:

@Override
public void onPageFinished(WebView view, String url)
{    
    mWebView.loadUrl("javascript (function(){" +                    
    "var myDictionary = {" +
    "jp : {" +
    "'お問い合わせ' : 'Contact Us'" +
    "}" +
    "}" +
    "$.tr.dictionary(myDictionary);" +
    "$.tr.language('jp');" +
    "var tr = $.tr.translator();" +
    "alert(tr('お問い合わせ'))" +
          "})()");
}
这似乎不起作用。请帮忙


注:我打算在字典里填上不止一个单词。对于第一个代码,我做了一个循环来更改变量
jap
eng
,但是效率很低。我选择不包含该代码以增加简单性。直接从来源处感谢:

启用JavaScript

默认情况下,WebView不允许使用JavaScript。要在web视图中运行web应用程序,需要通过向onCreate方法添加以下行来显式启用JavaScript:

// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

如果你能解释“这似乎不起作用”的意思,你会有更好的运气happens@JohnOlsen:您不使用
mWebView.loadUrl("javascript:…
在你的jQuery代码片段中。如果你在真实代码中有这样的代码,难怪什么都没有发生。仍然没有发生任何事情。甚至在注入javascript时可以放入jQuery代码吗?jQuery库脚本是否已经注入页面?我的意思是,页面应该有
。否则,你应该使用注入它e> .loadUrl(“javascript:…”)。我已经这样做了。当我使用javascript代码时,它工作得非常完美fine@JohnOlsen你找到解决这个问题的办法了吗?