如何从Chrome扩展程序的后台js访问页面元素

塔拉卡·德山

我的chrome扩展程序中有一个上下文菜单,现在当用户单击该菜单时,我需要捕获特定的页面元素。这是我的清单文件:

{
  "manifest_version": 2,
  "name": "Capture",
  "description": "This extension is capturing all text elements in the page",
  "version": "0.1",
  "permissions": ["contextMenus"],
  "background": {
    "scripts": ["jquery-2.0.2.js", "background.js"]
  },
  "manifest_version": 2
}

background.js

function captureTextBoxes(e) {
    var textboxes = $(':text') ; 
        //alert(textboxes.length);
        textboxes.each(function (i){
        //code here
    }
}

chrome.contextMenus.create({
    title: "Capture All text box Elements", 
    contexts:["page"], 
    onclick: captureTextBoxes,
});

这总是捕获0个文本框元素。所以我通过添加以下行来检查传递的文档:

    alert(document.documentElement.innerHTML);

它返回这个:

    <head></head>
    <body style="">
        <script src="jquery-2.0.2.js"></script>
        <script src="background.js"></script>
    </body>

这不是我的实际页面,而是由Chrome本身创建的动态页面。无论如何,是否可以访问右键单击上下文菜单的实际页面内容?(从后台的javaScript)

加尔帕克

contextMenus.onClicked事件(触发由onclick仅在持久性后台页面中指定的回调)仅对后台页面可用,并且后台页面无法直接访问任何网页的DOM。

如果要操纵网页DOM,则必须:

  1. 将内容脚本插入网页。
  2. 将消息传递到该内容脚本,以便它可以为您操纵DOM。

(SO中有很多资源说明了如何实现两者。)

也请看一下类似问题的答案

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过Chrome扩展程序点击页面上的元素

来自分类Dev

如何从Chrome扩展程序后台脚本访问页面变量

来自分类Dev

您可以通过扩展程序访问chrome://页面吗?

来自分类Dev

Chrome扩展程序:在页面加载之前注入JS

来自分类Dev

Chrome通知未从Chrome扩展程序后台页面显示

来自分类Dev

如何读取当前页面的HTML以访问Chrome扩展程序中的元素?

来自分类Dev

从后台Chrome扩展程序访问窗口对象

来自分类Dev

Chrome扩展程序后台页面无效,使该扩展程序只需点击2次即可运行

来自分类Dev

Chrome扩展程序后台页面和内容脚本同步

来自分类Dev

chrome扩展程序-将数据从后台传递到自定义html页面

来自分类Dev

Chrome扩展程序:如何使后台等待执行脚本?

来自分类Dev

Chrome扩展程序后台页面状态

来自分类Dev

如何从Chrome扩展程序访问主机

来自分类Dev

chrome扩展程序内部是否使用JSON.stiringify将Message传递到后台页面?

来自分类Dev

如何在Chrome扩展程序中动态运行后台脚本?

来自分类Dev

如何调用在Chrome扩展程序的OPTION.html页面中声明的元素?

来自分类Dev

Chrome扩展程序-使用热键单击页面上的元素(按钮)

来自分类Dev

点击事件在Chrome扩展程序的“后台”页面中不起作用

来自分类Dev

Chrome通知未从Chrome扩展程序后台页面显示

来自分类Dev

如何读取当前页面的HTML以访问Chrome扩展程序中的元素?

来自分类Dev

如何使用Chrome扩展程序/插件访问HTML元素?

来自分类Dev

Chrome扩展程序后台页面以编程方式注入的内容脚本多次注入

来自分类Dev

弹出式窗口中的Chrome扩展程序后台页面

来自分类Dev

从Chrome扩展程序访问当前HTML页面中的表

来自分类Dev

无法在Chrome扩展程序中从后台页面向内容脚本发送消息

来自分类Dev

如何从Chrome扩展程序访问主机

来自分类Dev

如何在Chrome扩展程序中动态运行后台脚本?

来自分类Dev

从Chrome扩展程序访问iframe中的DOM元素

来自分类Dev

Chrome 扩展程序 - 使用消息传递的后台页面表单提交。表单只提交一次

Related 相关文章

  1. 1

    通过Chrome扩展程序点击页面上的元素

  2. 2

    如何从Chrome扩展程序后台脚本访问页面变量

  3. 3

    您可以通过扩展程序访问chrome://页面吗?

  4. 4

    Chrome扩展程序:在页面加载之前注入JS

  5. 5

    Chrome通知未从Chrome扩展程序后台页面显示

  6. 6

    如何读取当前页面的HTML以访问Chrome扩展程序中的元素?

  7. 7

    从后台Chrome扩展程序访问窗口对象

  8. 8

    Chrome扩展程序后台页面无效,使该扩展程序只需点击2次即可运行

  9. 9

    Chrome扩展程序后台页面和内容脚本同步

  10. 10

    chrome扩展程序-将数据从后台传递到自定义html页面

  11. 11

    Chrome扩展程序:如何使后台等待执行脚本?

  12. 12

    Chrome扩展程序后台页面状态

  13. 13

    如何从Chrome扩展程序访问主机

  14. 14

    chrome扩展程序内部是否使用JSON.stiringify将Message传递到后台页面?

  15. 15

    如何在Chrome扩展程序中动态运行后台脚本?

  16. 16

    如何调用在Chrome扩展程序的OPTION.html页面中声明的元素?

  17. 17

    Chrome扩展程序-使用热键单击页面上的元素(按钮)

  18. 18

    点击事件在Chrome扩展程序的“后台”页面中不起作用

  19. 19

    Chrome通知未从Chrome扩展程序后台页面显示

  20. 20

    如何读取当前页面的HTML以访问Chrome扩展程序中的元素?

  21. 21

    如何使用Chrome扩展程序/插件访问HTML元素?

  22. 22

    Chrome扩展程序后台页面以编程方式注入的内容脚本多次注入

  23. 23

    弹出式窗口中的Chrome扩展程序后台页面

  24. 24

    从Chrome扩展程序访问当前HTML页面中的表

  25. 25

    无法在Chrome扩展程序中从后台页面向内容脚本发送消息

  26. 26

    如何从Chrome扩展程序访问主机

  27. 27

    如何在Chrome扩展程序中动态运行后台脚本?

  28. 28

    从Chrome扩展程序访问iframe中的DOM元素

  29. 29

    Chrome 扩展程序 - 使用消息传递的后台页面表单提交。表单只提交一次

热门标签

归档