我有一个问题,我知道如何在webview中获取HTML源代码,并且有很多方法可以获取它。但这就是我遇到的: 例如,我可以使用以下网址获取该网站的html来源:
web.loadUrl("javascript:window.HTMLOUT.processHTML('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');")
但是它只是给我第一个源代码HTML,如果此网站更改了html的某些元素,或者内容将在几秒钟内更改,我将无法获得它。那么如何在webview中获取最新的html?我使用的是Button,我等待网站更改内容,然后单击Button获取HTML,但仍与第一个相同。谢谢
答案 0 :(得分:1)
您正在使用javascript获取html代码, 那么我认为您可以仍然使用javascript 来检测html的更改。
您可以尝试使用MutationObserver javascript对象https://developer.mozilla.org/it/docs/Web/API/MutationObserver
// 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);