版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jbguo/article/details/90033854
如获取csdn上的元素:<webview id="foo" src="https://www.csdn.net/" autosize="on" minwidth="576" minheight="432" preload="./test.js"></webview>
用preload,test.js
const waitForExternal = setInterval(() => {
if (document.querySelector('.btn')){
clearInterval(waitForExternal);
console.log(11111);
}else{
console.log('no');
}
}, 100);
在应用index.html中使用(引入webview)
<script>
onload = function() {
var webview = document.getElementById("foo");
webview.addEventListener("dom-ready", function(){
webview.openDevTools() // 这里! 打开 webview的控制台
});
}
</script>
通过electron的executeJavascript方法
mainWindow.webContents.on('dom-ready', () => {
mainWindow.webContents
.executeJavaScript(
`
const waitForExternal = setInterval(() => {
if (document.querySelector('.btn')){
clearInterval(waitForExternal);
console.log(11111);
}else{
console.log('no');
}
}, 100);
`,
false,
(result) =>
console.log('webContents exec callback: ' + result)
)
.then((result) =>
console.log('webContents exec then: ' + result)
);
});
注意:webview内部还有iframe时
// 获取iframe
var frame =document.getElementById("iframeId");
// 获取iframe document
frame.contentWindow.document.getElementById("inputId");