我正在构建一个使用webview的应用。它加载了网站的移动版本。但我的客户希望我更改和删除一些文字。 我用javascript做了但是在我这样做之后,一些滑块停止工作了。没有javascript它完美无缺。但我必须以某种方式更改和删除文本。
我的网页设置;
wSettings=webView.getSettings();
wSettings.setJavaScriptEnabled(true);
wSettings.setDomStorageEnabled(true);
webView.loadUrl("http://www.evdusum.com");
和我在onPageFinished中使用的javascript;
@Override
public void onPageFinished(WebView view, String url) {
String link1 = "SİTEDE ARAYIN";
String link2 = "ARA";
String a="Bu sitede kullanılan yazılı ya da görsel dokümanlar izinsiz kullanılamaz.";
String b=" ";
view.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('" + link1+"', '" + link2+"')})()");
view.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('" + a+"', '" + b+"')})()");
((RelativeLayout)findViewById(R.id.start)).setVisibility(View.GONE);
}
答案 0 :(得分:0)
在Android api 18(JELLY_BEAN_MR1)之前,您可以使用此view.loadUrl("javascript:");
。只需使用ONE调用即可插入并调用你的js。如果您需要执行长代码,请构建一个函数并在"同一个调用" webView.loadUrl()
。
一些例子:
webView.loadUrl("javascript:(function() {" +
"var parent = document.getElementsByTagName('head').item(0);" +
"var script = document.createElement('script');" +
"script.type = 'text/javascript';" +
"script.innerHTML = function your_function(var1, var2){document.body.innerHTML = document.body.innerHTML.replace(var1, var2); return true;}" +
"parent.appendChild(script);" +
"your_function('"+link1+"','"+link2+"')" + ";})();");
Android api> = 19使用webView.evaluateJavascript
。这里有一些例子:
webView.evaluateJavascript("(function() {" +
"var parent = document.getElementsByTagName('head').item(0);" +
"var script = document.createElement('script');" +
"script.type = 'text/javascript';" +
"script.innerHTML = function your_function(var1, var2){document.body.innerHTML = document.body.innerHTML.replace(var1, var2); return true;}" +
"parent.appendChild(script);" +
"return your_function('"+link1+"','"+link2+"');})();", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.v("TAG", "Response from JS"+value)
}
});