2015-03-18 105 views
0

我想在android的webview中注入替換方法。在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);" + 
        "})()"); 
      } 

有沒有什麼東西與我的代碼?

+0

所以,你想作爲一個變量名的字符串時,引用了變量評估這個? – tadman 2015-03-18 21:21:09

+0

'新的RegExp(「+ old +」,'g')''和'.replace(ol,「+ new +」);' – blex 2015-03-18 21:21:12

+0

var似乎無法識別字符串中的文本......任何修復方法那? – 2015-03-19 00:01:45

回答

2

你必須將它們傳遞到像

{ 
    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是保留關鍵字,而不應被

+0

對不起,我認爲這會起作用,並將其標記爲答案,但當我將其放入我的代碼時,它最終無法工作。 – 2015-03-18 22:43:31

+0

必須在我的最後做一些修改,但工作!謝謝 – 2015-03-21 00:41:39