Javascript 将JQuery注入Android Webview
我正在做一个项目,翻译一个网页并在android应用程序中显示它。 通过使用以下代码将Javascript注入webview android,我成功地做到了这一点: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
@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库脚本是否已经注入页面?我的意思是,页面应该有
。否则,你应该使用