黄聪:360、chrome开发插件扩展如何跨域调用其他网站的信息并且显示在扩展、tab中的api
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的元素发过去
- });
- }
- }
- );
黄聪:360、chrome开发插件扩展如何跨域调用其他网站的信息并且显示在扩展、tab中的api的更多相关文章
- 黄聪:Jquery+DataTables插件,如何在ajax调用服务器数据后,自动给tr添加id属性
http://legacy.datatables.net/usage/callbacks#fnRowCallback 主要通过 fnCreatedRow 事件来实现 var table = $('#t ...
- js跨域调用mvc ActionResult扩展
背景 最近2个项目中都用到了js跨域访问的知识,2个项目都需要主站与各个分站之间进行数据交互.状态同步等相关操作.浏览器本身是不允许进行跨域访问,在MVC中我们可以扩展一个方法来实现这个功能.在此大家 ...
- [记录]js跨域调用mvc ActionResult扩展
背景 最近2个项目中都用到了js跨域访问的知识,2个项目都需要主站与各个分站之间进行数据交互.状态同步等相关操作.浏览器本身是不允许进行跨域访问,在MVC中我们可以扩展一个方法来实现这个功能.在此大家 ...
- 开发环境Vue访问后端接口教程(前后端分离开发,端口不同下跨域访问)
原理:开发环境下的跨域:在node.js上实现请求转发,vue前端通过axios请求到node.js上,node.js将请求转发到后端,反之.响应也是,先到node.js上,然后转发vue-cil项目 ...
- 黄聪:chrome扩展开发《AJAX请求》
chrome在一次更新之后,出于安全考虑,完全的禁止了content_script从https向http发起ajax请求,即使正常情况下也会在console里给出提示.这对于WEB来讲是好事,但对于扩 ...
- 利用Google Chrome开发插件,在网页中植入js代码
Google Chrome是一个很强大的浏览器,提供了各种各样的插件,大大提升了使用了的效率,比如vimium.honx等. Google在提供这些插件的同时还允许用户开发自己的插件. 最近在写js的 ...
- 黄聪:VS2010开发如何在c#中使用Ctrl、Alt、Tab等全局组合快捷键
1.新建一个类 HotkeyHelper using System; using System.Runtime.InteropServices; using System.Windows.Forms ...
- vue项目开发时怎么解决跨域
vue项目中,前端与后台进行数据请求或者提交的时候,如果后台没有设置跨域,前端本地调试代码的时候就会报“No 'Access-Control-Allow-Origin' header is prese ...
- 前后端分离跨域 关于前后端分离开发环境下的跨域访问问题(angular proxy=>nginx )
前后端分离后遇到了跨域访问的问题: angular1中使用proxy很麻烦,最后还是失败结束:最后总结3种方法如下: 本人使用的第一种方法,只是开发环境下使用很方便! 1:禁掉谷歌的安全策略(Turn ...
随机推荐
- 【各类MQ比较】消息队列MQ
目前业界有很多MQ产品,我们作如下对比: RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量 ...
- Question: Should I use reads with good quality but failed-vendor flag?--biostart for vendor quality
https://www.biostars.org/p/198405/ Quick question is: I have some mapped reads in bam file which hav ...
- 线程池ThreadPoolExecutor里面4种拒绝策略
ThreadPoolExecutor类实现了ExecutorService接口和Executor接口,可以设置线程池corePoolSize,最大线程池大小,AliveTime,拒绝策略等.常用构造方 ...
- ros 杀掉所有节点
rosnode kill -a 或者 rosnode kill --all
- python 十进制数转二进制数
def convertToBinary(n): """Function to print binary number for the input decimal usin ...
- Java网络编程学习A轮_03_抓包分析TCP四次挥手
参考资料: http://www.jellythink.com/archives/705 示例代码: https://github.com/gordonklg/study,socket module ...
- 最小生成树prim和kruskal模板
prim: int cost[MAX_V][MAX_V]; //cost[u][v]表示边e=(u,v)的权值(不存在的情况下设为INF) int mincost[MAX_V]; //从集合X出发的每 ...
- mysqldump恢复指定表
http://blog.csdn.net/lwei_998/article/details/18860889 如果mysql服务器上不能随意安装软件,当需要从全备份中恢复单个表,怎么办? 1.mysq ...
- [转载]SQL语句练习
.查询“生物”课程比“物理”课程成绩高的所有学生的学号: 思路: 获取所有有生物课程的人(学号,成绩) - 临时表 获取所有有物理课程的人(学号,成绩) - 临时表 根据[学号]连接两个临时表: 学号 ...
- oracle 10g 用dbms_xmlgen将数据表转成xml格式
oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle 10g 用dbms_xmlgen将数据表转成xml格式 oracle用plsql将sql查询的所有数据导出为xml