apa*_*aul 5 javascript github node.js atom-editor electron
是否有可能从原子电子桌面开发工具包中的webview元素中刮取html,我试图访问DOM,但我什么也没回来,我已经尝试过document.links在运行时在控制台中,但是我得到了空的属性和对象作为回报?
window.onresize = doLayout;
var isLoading = false;
onload = function() {
var webview = document.querySelector('webview');
doLayout();
var t = webview.executeJavaScript("console.log(document.links);");
document.querySelector('#back').onclick = function() {
webview.goBack();
};
<object is="browserplugin" type="application/browser-plugin" id="browser-plugin-1" style="flex: 1 1 auto;"></object>
Run Code Online (Sandbox Code Playgroud)
您console.log
正在登录到Webview的控制台,而不是父渲染器进程的控制台。document.querySelector('webview').openDevTools()
从父渲染器运行(在src
Web视图上运行后,它的其他方法才可用)。这将打开另一个开发工具窗口。从该控制台,您应该看到您的日志。请注意,Web视图和托管Web视图的渲染器是两个单独的webContents
实例和两个单独的渲染器进程。您可以通过IPC在它们之间或主要过程之间进行通信。
不确定目标是什么,但是如果您想在Webview中进行DOM操作,建议使用preload脚本。该脚本在Webview的JS之前运行,并允许您访问所有node.js和渲染器电子API以及DOM。executeJavaScript
这将是一条漫长的艰难之路,而preload
针对这种用例构建了脚本。
这是一个示例,演示1)打开Web视图的devtools,2)在访问DOM的Web视图的上下文中运行预加载脚本,3)通过IPC:https:// github在父渲染器进程和子Web视图进程之间进行通信。 com / ccnokes / electron-tutorials / tree / master / preload-scripts
归档时间: |
|
查看次数: |
2819 次 |
最近记录: |