我正在尝试在 android 的 webview 中注入(inject) javascript 的替换方法。
此代码有效:
{
mWebView.loadUrl("javascript:(function(){" +
"document.body.innerHTML = document.body.innerHTML.replace('hello', 'hi');" +
"})()");
}
但是,我不想将字符串放入方法中,而是想使用变量。我尝试使用正则表达式,但它似乎不起作用。
{
String old = "hello";
String new = "hi";
mWebView.loadUrl("javascript:(function(){" +
"var ol = new RegExp(old,'g');" +
"document.body.innerHTML = document.body.innerHTML.replace(ol, new);" +
"})()");
}
我的代码有问题吗?
最佳答案
将变量传递到这样的字符串时,必须引用变量
{
String old = "hello";
String _new = "hi";
mWebView.loadUrl("javascript:(function(){" +
"var ol = new RegExp("+old+",'g');" +
"document.body.innerHTML = " +
"document.body.innerHTML.replace(ol, " +_new+ ");" +
"})()"
);
}
请注意,new
是保留关键字,不应用作变量名
关于javascript - 在 Javascript.replace 中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29132902/