chrome系列-扩展程序开发学习-跨域请求数据

chrome系列-扩展程序开发学习-跨域请求数据

月光魔力鸭

2018-09-08 17:54 阅读 662 喜欢 0 chrome系列 跨域

扩展程序中会有需要请求外部接口获取数据的时候,如果直接在JS中写的话,会跨域,但是谷歌扩展程序支持这种情况,只需要配置一下即可。

下面我们做一个简单的请求数据获得IP地址的数据。

主要的配置项permissions, 配置需要请求的地址即可。

{
	"manifest_version":2,
	"name":"IP地址",
	"version":"1.0",
	"description":"DEMO-查看当前的用户IP",
	"icons":{
		"16":"img/icon16.png"
	},
	"browser_action":{
		"default_icon":{
			"16":"img/icon16.png"
		},
		"default_title":"查看IP",
		"default_popup":"popup.html"
	},
	"permissions":[
		"http://pv.sohu.com/cityjson"
	]
}

获取IP地址的API地址:undefined

//popup.html 长这样子,简单一些
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>IP地址</title>
	<style>
		.div{
			min-width:200px;
			background-color:black;
			color:white;
			font-size:20px;
			text-align:center;
		}
	</style>
</head>
<body>
	<div class="div" id="demo">
		
	</div>
</body>
</html>
<script type="text/javascript" src="popup.js"></script>
//popup.js 长这样子
//request 异步请求地址
function request(url,cb){
	var xhr = new XMLHttpRequest();
	xhr.open('GET',url);

	xhr.onreadystatechange = function(){
		if(xhr.readyState == 4){
			cb(xhr.responseText);
		}
	}
	xhr.send();
}

request('http://pv.sohu.com/cityjson',function( ip ){
	document.getElementById('demo').innerHTML = ip;
});

大功告成,将我们的文件夹加载到谷歌扩展程序中,看下效果吧。

示例图

想做一个更实用的小插件,那么就需要你的灵感和需求了。

转载请注明出处: https://chrunlee.cn/article/chrome-learn-3.html


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
最近有个小功能需要一些基础数据,找了一下在小程序上有发现,暂时还没找到他的网站,想着把这些数据爬一些下来做为基础数据使用的。本来还想着直接反编译小程序的,没想到微信变更了加密方式,以前反编译的路子走不通了。
ffmpeg 采集摄像头进行推流,然后播放,实现直播。
近期有添加数学公式的需求,找来找去,最后还是选择了最简单的。tinymce+kityformula
最近看某站壁纸挺好看的,抓了几百张放本地...可总不能每天手动去换吧,就做了一个随机更换的小工具。
整理一些相关的信息,防止后续再找不到。
本来是想做一个图床,然后在chrome扩展中添加上,但是发现chrome的扩展有点毫无头绪,只能从头练习,从头学了。
BUG 报错Tainted canvases may not be exported 。 在通过canvas 调用 toDataURL的时候出现的问题。
功能来源于客户需求。客户有需求想把班级内所有学生的错题本生成pdf文档下载下来... 目前没有做这个功能,只有页面,还好chrome浏览器有保存pdf的功能,但是一想到这么多的学生,这么多的学科、以及这么多的参数... 还好有puppeteer