如何用鼠标选择页面上的元素并将其隐藏在javascript中

瓦吉夫

我正在为 chrome 制作一个测试扩展。我的问题:

是否可以制作一个事件脚本来用鼠标选择一个元素并将其隐藏?当您按下 时,类似于检查元素选择工具Shift+Ctrl+C注意:我不想在之后进行 DOM 重排。

这是我的代码:

内容.js:

var elems = document.getElementsByTagName("iframe");

$(document).ready(function() {
    for (var i = 0, max = elems.length; i < max; i++) {
        elems[i].hidden = true;
    };
});

window.onload = function() {
    for (var i = 0, max = elems.length; i < max; i++) {
        elems[i].hidden = true;
    }
};

$(window).load(function() {
    for (var i = 0, max = elems.length; i < max; i++) {
        elems[i].hidden = true;
    };
});

for (var i = 0, max = elems.length; i < max; i++) {
    elems[i].hidden = true;
};

清单.json:

{
  "manifest_version":2,
  "name":"Test",
  "description":"A Basic program",
  "version":"0.1",
  "background":{
     "scripts":[

     ]
  },
  "content_scripts":[
     {
        "matches":[
           "<all_urls>"
        ],
        "js":[
          "jquery-3.2.1.min.js",
          "content.js"
        ]
     }
  ],

  "browser_action":{
     "default_title":"Test"
   }
 }
基思

有多种不同的方式来选择一个元素,还有一种方式可以隐藏它。

首先,您可以使用chrome.contextMenus.create.

要处理关键和弦(如SHFT+CTRL+C),您需要在页面中使用背景脚本。

在此事件中,您可以操作 DOM 来隐藏元素。使用element.style.display = 'none'崩溃内容围绕它,或element.style.opacity = '0'将其隐藏,同时保持页面不变的其余部分。

查看您的源代码:

var elems = document.getElementsByTagName("iframe");

好的,这应该得到<iframe>页面中的所有标签,假设它们已经加载。默认情况下,内容脚本在 DOM 完成后触发,但可以在 onload 事件之前或之后

接下来...

$(document).ready(function() { ...
window.onload = function() { ...
$(window).load(function() { ...

这些似乎是将其连接到已完成加载的文档的不同尝试。问题是window.onload可能(也可能没有)已经开火了。您可以window.onload使用"run_at": "document_end"in强制内容脚本在之前运行manifest.json,但我认为这不是您想要的。

请注意,所有这些都使用elems您从带有内联脚本的 DOM 获得变量,因此如果<iframe>在事件触发之前它不存在,那么它就不会在数组中。

最后,所有这些似乎都在尝试循环<iframe>s:

for (var i = 0, max = elems.length; i < max; i++) {
    elems[i].hidden = true;
};

这很好,但用于elems[i].style.visibility = 'hidden'避免回流 DOM。所以(使用 Chrome 扩展支持的 ES6 语法):

function hideIframes() {
    const elems = document.getElementsByTagName('iframe');
    for (let e of elems) {
        e.style.visibility = 'hidden';
    };
}

// Don't do all of these - pick one that suits your context
hideIframes(); // Run inline on document_idle
$(hideIframes); // Run on jQuery complete
setTimeout(hideIframes, 3000); // Run again in 3s

我认为您的问题是<iframe>当内容脚本运行时,您要查找s 尚未出现在页面中。您可能需要针对您认为正在添加它们的特定事件添加检查。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript:选择元素的父级并将其隐藏

来自分类Dev

如何使用javascript获取输入并将其放在页面上

来自分类Dev

如何使用 Selenium C# 断言元素/按钮隐藏在页面上?

来自分类Dev

将元素隐藏在多个页面中

来自分类Dev

如何从存储在php文件中的数组中提取元素并将其显示为HTML页面上的文本?

来自分类Dev

如果页面上存在元素,则找到 h1 并将其放置在找到的元素中

来自分类Dev

如何禁用过去的日期而不将其隐藏在剑道日期选择器中?

来自分类Dev

如何使用JavaScript从列表中选择元素并将其放入数组中

来自分类Dev

如何在使用CSS隐藏元素的同时仍将其保留在页面上?

来自分类Dev

如何在仍将其保留在页面上的同时使用CSS隐藏元素?

来自分类Dev

取元素(ID)并将其显示在页面上的任何位置

来自分类Dev

取元素(ID)并将其显示在页面上的任何位置

来自分类Dev

如何在 Loopback 4 (strongloop) 中的模型中使用属性并将其隐藏在 /explorer 中(Ej:自动生成的 ID)

来自分类Dev

在Webview Android中隐藏页面上的元素

来自分类Dev

在Webview Android中隐藏页面上的元素

来自分类Dev

如何显示一个用户控件并将其他控件隐藏在C#中

来自分类Dev

如何进行异步编程,但将其隐藏在Python中?

来自分类Dev

如何从Java servlet中获取数据并将其放在现有的html页面上

来自分类Dev

如何通过网络访问外部硬盘并将其隐藏在本地

来自分类Dev

将子文件夹重定向到root并将其隐藏在url中

来自分类Dev

如何选择页面中的所有链接并将其存储在水豚中的数组中?

来自分类Dev

应用inputMask但将其隐藏在输入中

来自分类Dev

如何选择注入的HTML的li并将其隐藏

来自分类Dev

选择时如何仅在特定页面上使用隐藏的attr

来自分类Dev

用jquery隐藏在页面上重复的特定HTML模式

来自分类Dev

如何选择向量中的相邻元素并将其放入R中的列表或矩阵

来自分类Dev

如何在管理面板中创建自定义文本表单并将其显示在我的页面上(Wordpress)

来自分类Dev

如何从列表中的学生获取 id 并将其显示在另一个页面上的学生信息?Ruby on Rails

来自分类Dev

如何在 CodeIgniter 中使用 jquery 复制隐藏字段值并将其传递到另一个页面上?

Related 相关文章

  1. 1

    Javascript:选择元素的父级并将其隐藏

  2. 2

    如何使用javascript获取输入并将其放在页面上

  3. 3

    如何使用 Selenium C# 断言元素/按钮隐藏在页面上?

  4. 4

    将元素隐藏在多个页面中

  5. 5

    如何从存储在php文件中的数组中提取元素并将其显示为HTML页面上的文本?

  6. 6

    如果页面上存在元素,则找到 h1 并将其放置在找到的元素中

  7. 7

    如何禁用过去的日期而不将其隐藏在剑道日期选择器中?

  8. 8

    如何使用JavaScript从列表中选择元素并将其放入数组中

  9. 9

    如何在使用CSS隐藏元素的同时仍将其保留在页面上?

  10. 10

    如何在仍将其保留在页面上的同时使用CSS隐藏元素?

  11. 11

    取元素(ID)并将其显示在页面上的任何位置

  12. 12

    取元素(ID)并将其显示在页面上的任何位置

  13. 13

    如何在 Loopback 4 (strongloop) 中的模型中使用属性并将其隐藏在 /explorer 中(Ej:自动生成的 ID)

  14. 14

    在Webview Android中隐藏页面上的元素

  15. 15

    在Webview Android中隐藏页面上的元素

  16. 16

    如何显示一个用户控件并将其他控件隐藏在C#中

  17. 17

    如何进行异步编程,但将其隐藏在Python中?

  18. 18

    如何从Java servlet中获取数据并将其放在现有的html页面上

  19. 19

    如何通过网络访问外部硬盘并将其隐藏在本地

  20. 20

    将子文件夹重定向到root并将其隐藏在url中

  21. 21

    如何选择页面中的所有链接并将其存储在水豚中的数组中?

  22. 22

    应用inputMask但将其隐藏在输入中

  23. 23

    如何选择注入的HTML的li并将其隐藏

  24. 24

    选择时如何仅在特定页面上使用隐藏的attr

  25. 25

    用jquery隐藏在页面上重复的特定HTML模式

  26. 26

    如何选择向量中的相邻元素并将其放入R中的列表或矩阵

  27. 27

    如何在管理面板中创建自定义文本表单并将其显示在我的页面上(Wordpress)

  28. 28

    如何从列表中的学生获取 id 并将其显示在另一个页面上的学生信息?Ruby on Rails

  29. 29

    如何在 CodeIgniter 中使用 jquery 复制隐藏字段值并将其传递到另一个页面上?

热门标签

归档