javascript - 通过 Chrome 扩展将鼠标悬停在检查器中的元素上时突出显示网页元素

标签 javascript angularjs google-chrome-extension web-inspector

我正在使用 AngularJs1.6 开发 Chrome 扩展。我想通过给定元素的查询选择器的扩展来突出显示网页上的元素。

例如。在下面的第一张图片中,我想将鼠标悬停在组件/类名称表中的 BUTTON.info-popover-button.btn.btn-link 上,并触发 API 调用以在第二张图片。

enter image description here from question:http://stackoverflow.com/questions/14152116/inspect-element-rulers-in-firefox

最佳答案

您可以使用 Element.getBoundingClientRect() 获取尺寸,然后将 position:fixed 元素移动到其上:

let overlay = document.querySelector('#mouseover_overlay');
document.addEventListener('mouseover', e => {
  
  let elem = e.target;
  let rect = elem.getBoundingClientRect();
  overlay.style.top = rect.top +'px';
  overlay.style.left = rect.left +'px';
  overlay.style.width = rect.width +'px';
  overlay.style.height = rect.height +'px';
});
#mouseover_overlay {
  position: fixed;
  z-index: 999999999999999;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  background: rgba(0, 100, 255, 0.3);
  pointer-events: none;
  transition: 0.2s; /* Just for fun */
}
<!-- Example DOM taken from https://justintaddei.github.io/WebAudioAPI/ -->

<html>
<body>
    <h1>WebAudio API Experiments</h1>
    <label for="filter">Filter</label>
    <select id="filter">
        <option value="none">None</option>
        <option value="lowpass">Lowpass</option>
        <option value="highpass">Highpass</option>
        <option value="lowshelf">Lowshelf</option>
        <option value="highshelf">Highshelf</option>
        <option value="bandpass">Bandpass</option>
    </select>

    <label for="filterF">Filter Frequency (<input type="number">Hz)</label>
    <input type="range" id="filterF" min="0" max="20000" step="1">

    <label for="track">Audio source (or drag & drop file to play)</label>
    <select id="track">
        <option value="audio13.mp3">Magic Man (Heart)</option>
        <option value="audio12.mp3">Heart Of Glass (Blondie)</option>
        <option value="audio.mp3">Hungry Like The Wolf (Duran Duran)</option>
     </select>

    <button onclick="pause();">
        play/pause graphics
    </button>

    <button id="record">Record audio</button>
    <button id="delete">Delete recording</button>

    <div id="mouseover_overlay"></div>
</body>

</html>

关于javascript - 通过 Chrome 扩展将鼠标悬停在检查器中的元素上时突出显示网页元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42564490/

相关文章:

javascript - 如何在 Chart.js 中使用图标作为图例?

javascript - 有什么用!!在 JavaScript 中

javascript - $timeout 是避免 AngularJS 指令中 jQuery 插件呈现问题的唯一/推荐方法吗?

javascript - Angularjs 在表行中的输入值和跨度值之间切换

google-chrome-extension - 执行脚本方法

Javascript classList 没有按预期工作

javascript - 在 Jquery 进度条上设置默认值

javascript - AngularJS:如何使用选项值中的两个元素进行排序或过滤

javascript - 为什么我的非常简单的 Chrome 扩展程序在 Mac 上运行,但在 PC 上运行不正常?

javascript - 运行内容脚本的 URL 上的页面操作按钮图标变灰