2017-06-06 66 views
2

我有一個JavaScript腳本,在加載的WebView中使用jQuery尋找頁面中元素的位置。有沒有辦法將JavaScript注入WebView以供後期使用?

出於某種原因,此腳本僅在有時會起作用,我懷疑它與加載腳本或頁面所需的時間有關。 我試圖評估WebViewClient接口的onPageFinished上的腳本,所以我不認爲頁面的加載與它有關,但也許我錯了。

我是一名Android開發人員,對JavaScript和jQuery的理解非常有限,但我知道這個腳本的工作原理,因爲在iOS平臺中使用相同的腳本並始終返回良好的結果。

加載腳本本身的機會有一些時間問題。

所以問題是:有沒有一種方法可以在腳本使用之前加載它,或者加載腳本並確保它加載到WebView中。

+2

如果您希望腳本在頁面加載完成時運行,請在標記之前的html中添加一個帶有此代碼的腳本標記:$(document).ready(function(){ }); – Juan

+0

@Juan問題是我加載到WebView中的頁面不是我的頁面。我無法控制在WebView中加載的HTML或JavaScript內容,除了我添加/評估的腳本,它包含有關在頁面中查找指定元素的一些邏輯。 –

+0

你有沒有試過這個:https://stackoverflow.com/questions/21552912/android-web-view-inject-local-javascript-file-to-remote-webpage – Juan

回答

0

無論何時調用腳本標記,都會加載腳本。 他們保持加載,直到該頁面被銷燬。 它們可以通過任何頁面訪問。

如果我的想法是正確的,我相信你的問題的直接答案是YES。但是你想知道的是如何。

在如果腳本加載使用jQuery你可以檢查一個網頁,把這段代碼在你的

$(function() { 
    //anything here is executed after page is loaded 
}); 

末如果你想在你沒有一個頁面來執行一個JavaScript有它的來源的控制權,恐怕你不能做你想做的事,因爲網絡標準的安全規則......你將不得不破解它我無法幫助。

相關問題