Java 如何使用webview获取上次更新的HTML内容?
我有一个问题,我知道如何在webview中获取HTML源代码,并且有很多方法来获取它。但这就是我遇到的: 例如,我可以使用以下方法获取此网站的html源代码:Java 如何使用webview获取上次更新的HTML内容?,java,android,html,webview,Java,Android,Html,Webview,我有一个问题,我知道如何在webview中获取HTML源代码,并且有很多方法来获取它。但这就是我遇到的: 例如,我可以使用以下方法获取此网站的html源代码: web.loadUrl(“javascript:window.HTMLOUT.processHTML(“”+document.getElementsByTagName(“”+html')[0]。innerHTML+“”);”) 但它只是给了我一个HTML的第一个源代码,如果这个网站是改变一些HTML元素或内容将在几秒钟内改变,我不能得到它
web.loadUrl(“javascript:window.HTMLOUT.processHTML(“”+document.getElementsByTagName(“”+html')[0]。innerHTML+“”);”)
但它只是给了我一个HTML的第一个源代码,如果这个网站是改变一些HTML元素或内容将在几秒钟内改变,我不能得到它。那么如何在webview中获取最新的html呢?我正在使用按钮,我等待网站更改内容,我点击按钮获得HTML,但仍然和第一次一样。感谢您使用javascript获取html代码, 然后,我认为您可以检测仍然使用javascript的html更改 您可以尝试使用MutationObserver javascript对象
您正在使用javascript获取html代码, 然后,我认为您可以检测仍然使用javascript的html更改 您可以尝试使用MutationObserver javascript对象
// Select the node that will be observed for mutations
var targetNode = document.getElementById('some-id');
// Options for the observer (which mutations to observe)
var config = { attributes: true, childList: true, subtree: true };
// Callback function to execute when mutations are observed
var callback = function(mutationsList, observer) {
for(var mutation of mutationsList) {
if (mutation.type == 'childList') {
console.log('A child node has been added or removed.');
//RELOAD YOUR WEBVIEW HERE
}
else if (mutation.type == 'attributes') {
console.log('The ' + mutation.attributeName + ' attribute was modified.');
//RELOAD YOUR WEBVIEW AND HERE
}
}
};
// Create an observer instance linked to the callback function
var observer = new MutationObserver(callback);
// Start observing the target node for configured mutations
observer.observe(targetNode, config);