我的活动中有一个加载网页的WebView和一个按钮。当用户按下按钮时,我需要注入一个远程JavaScript脚本(该脚本对网页元素执行一些操作)。 脚本类似于:
var SOME_VARS = {
//... some variables for script
},
IGNORED_TAGS = {
script: !0,
style: !0
};
function parseText(i) {
// function that must be executed on WebView current page
}
document.body.childNodes.forEach(parseText);
它位于http://somewhere.com/myscript.js
上在我的Android应用上,我尝试过类似的操作
String url = "http://urltoopen.com";
final WebView webView = findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
CookieManager.getInstance().setAcceptCookie(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
CookieManager.getInstance().setAcceptThirdPartyCookies(webView,true);
}
webView.loadUrl(url);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.loadUrl("http://somewhere.com/myscript.js");
}
});
但是脚本未执行。 我该怎么办?