javascript - 如何将鼠标悬停、突出显示并从外部域获取网页中的 DOM 对象的属性
问题描述
我正在尝试开发一个 Web 应用程序,其功能类似于 Chrome 中的开发人员工具中的元素选择器。我需要在我的应用程序的容器内打开来自其他不同域的任何 URL,并且页面应该完全按照它在普通浏览器中的显示方式显示,并且具有所有样式。然后我应该能够将鼠标悬停在打开的页面中的元素上,突出显示它,并显示有关此元素的一些属性信息。
我创建了一个简单的 Angular 应用程序并使用Iframe
标签打开第三方页面。但是,当我尝试将带有 的事件处理程序附加addEventListener
到 Iframe 中的 DOM 元素时,我收到了跨域错误消息。
未捕获的 DOMException:阻止具有源“ http://localhost:4200 ”的框架访问跨域框架。
我在 stackoverflow 中阅读了一些帖子,例如“JavaScript 无法读取跨站点内容”和“如果您无法控制框架站点,则无法规避跨域策略”。有关更多详细信息,请查看链接:
以下是我的代码:
<iframe id="pFrame" onload="frameLoad();" src="" />
function frameLoad() {
let frame = document.getElementById("pFrame");
let iframeWindow = frame.contentWindow;
iframeWindow.addEventListener("mouseover", mouseOver, true);
iframeWindow.addEventListener("mouseout", mouseOut, true);
iframeWindow.addEventListener("click", onClick, true);
}
你有什么建议或者建议不同的技术来解决这个问题吗?
谢谢
解决方案
您是否尝试过查看Mozilla Goggles项目?
它有一个集成的编辑器,他们的检查员似乎很强大。
此外,它不需要您的计算机上的任何应用程序。
推荐阅读
- android - 使用 Django Rest Framework jwt 身份验证实现通知
- javascript - Node.js 登录身份验证系统未正确存储用户
- c++ - 如何在 opencv 中使用 cv::VideoCapture::waitAny()
- excel - .PasteSpecial Paste:=xlPasteColumnWidths 部分仅适用于最后一页
- json - 在 Swift 中解码 JSON 并在开始时更改 Key
- powershell - Powershell - 根据 CSV 文件检查 IP 地址范围
- r - 我想检查 df1 中任何行的 2 列是否 == df2 中任何行的相同 2 列
- java - 引起:java.net.UnknownHostException:www.btechldap.com
- c# - 在带有 winforms 应用程序的 Windows 服务器上使用带有 RDP 的重定向打印机
- asp.net-web-api - 子域 webapi (asp.net mvc) 响应直接请求,但不响应同一域的请求