当前位置:首页 > 开发 > Web前端 > 前端 > 正文

chrome扩展 与页签tab的内容的交互

发表于: 2010-11-25   作者:hotsunshine   来源:转载   浏览次数:
摘要: chrome插件提供了查找tab的api chrome.tabs.get(integer tabId, function callback) 但是出于安全的考虑,tab的属性中没有document 因此无法在扩展中直接获取某个页签页面中的页面元素 但是tab有这样一个方法 chrome.tabs.sendRequest(integer tabId, any request
chrome插件提供了查找tab的api
chrome.tabs.get(integer tabId, function callback)

但是出于安全的考虑,tab的属性中没有document

因此无法在扩展中直接获取某个页签页面中的页面元素

但是tab有这样一个方法
chrome.tabs.sendRequest(integer tabId, any request, function responseCallback)

他可以在扩展中可以对某一个tab进行请求,发送请求信息;
在对应的tab页面中通过
chrome.extension.onRequest.addListener(function(any request, MessageSender sender, function sendResponse) {...});

对扩展中的请求进行监听,根据监听到的信息,决定要做的事情

简单一点的,简明实例:
一、在扩展中 添加 发送事件请求 的代码
chrome.tabs.sendRequest(tab_id, {
      hello: "ok"
    }, function(response) {
        // tab做出响应,发来的response
})


二、在 tab中添加 事件监听的代码

在manifest.json中添加
  "content_scripts": [
    {
      "matches": ["*://*/*"],
      "js": ["jquery.min.js","test.js"]
    }
  ],
  "permissions": ["*://*/*","tabs"]

其目的是在每个页签页面加载的时候同时载入这两个js,获取tabs的权限

在test.js 中放入监听 扩展 请求事件的代码
chrome.extension.onRequest.addListener(
  function(request, sender, sendResponse) {
    if (request.hello == "ok"){  // 在得到request请求是ok的时候 做下面的操作
      sendResponse({
        data: $("#hello") // 获取id是hello的元素发过去
      });
    }
  }
  );

chrome扩展 与页签tab的内容的交互

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
选项卡,也称页签,英文用Tab(Module-Tabs)表示。Tab将不同的内容重叠放在一个布局块内,重叠的内容
目录 ASP.NET MVC搭建项目后台UI框架—1、后台主框架 ASP.NET MVC搭建项目后台UI框架—2、菜单特效
Chrome IE Tab Multi 是一款最接近 IE 的 Chrome扩展,你可以不用再另外打开 IE 访问只能在 IE 中访
Chrome IE Tab Multi 是一款最接近 IE 的 Chrome扩展,你可以不用再另外打开 IE 访问只能在 IE 中访
Chrome IE Tab Multi 是一款最接近 IE 的 Chrome扩展,你可以不用再另外打开 IE 访问只能在 IE 中访
页面中用到一个图片: 页面代码如下: Html代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
豆瓣上一位网友推荐的chrome扩展,很不错 一下是自己的扩展 Ctrl+Alt+Double Click to disable/enab
页签及盒子示例下载 页签及盒子是html界面最常见不过的组件。本博文给出它们的一个示例,并作简要分
自己在虚拟机上建立了一个redmine,主要是看中其可以无限进行任务分解的功能。 建立好后,突然发现
最进遇到了问题,一个界面要展示很多内容,所以需要页卡分开显示,但是集成其它的拖动控件,导致jqu
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号