2017-08-14 80 views
0

我想將我的javascript添加到遠程網站。在webview中運行腳本之後將Javascript注入網站

我嘗試使用方法onPageFinished但它只在腳本運行之前獲取網站。該網站必須從服務器獲取所有數據,並且必須等到完成後才能將js添加到生成的元素。

我想用所有的元素要等到腳本生成它們

我怎麼能知道當網站已完全呈現? (跑了所有的腳本,並擁有所有生成的html)

編輯

我可以生成的HTML,但它不能幫助任何東西(this

我也嘗試了許多解決方案,但他們沒」將不起作用(thisthis

這裏我的示例代碼

webPreviewDocument.setWebViewClient(new WebViewClient(){ 
@Override 
public void onPageFinished(WebView view, String url) { 
    webPreviewDocument.loadUrl("javascript:alert('Example');"); // just example 
} 
}); 
WebSettings webSettings = webPreviewDocument.getSettings(); 
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); 
webSettings.setLoadWithOverviewMode(true); 
webSettings.setJavaScriptEnabled(true); 
webSettings.setUseWideViewPort(true); 
webPreviewDocument.loadUrl(mMaterialPreview.getPreviewUrl()); 

When the page is loading

onPageFinished調用時,頁面加載預覽內容,我不得不等待幾秒鐘,然後將所有內容加載。我還試圖用睡眠等待兩個js和Java,但它不工作

+0

因此,如果我明白你想在一個你不擁有的網站上運行你的JS文件? – Steven

+0

是的,我想這樣做,你有什麼建議嗎? –

回答

0

你可以做這樣的事情在你的JS文件:

var init = function() { 
    //here you write your functions that need to be excuted by example: 
    $('.checkbox').on('change', checkCheckbox); 
}; 
$(document).ready(init()); 

功能的init()只能在文檔加載時執行。 這個函數也是用Jquery編寫的。我不知道你是否使用過或知道這一點。如果您還有其他問題,請詢問

+0

我已經嘗試過,但它不會工作。因爲在Android中,當我加載頁面時,它總是立即調用onPageReturn,儘管頁面必須加載預覽內容。 例如:當您單擊以在Google照片中打開圖像時,必須在顯示之前加載預覽內容幾秒鐘。 –

+0

你能告訴我你的android代碼嗎?你也可以告訴我你如何加載內容? – Steven

+0

當然,我編輯了我的帖子 –