chrome系列-扩展程序开发学习-可配置选项

chrome系列-扩展程序开发学习-可配置选项

月光魔力鸭

2018-09-10 09:16 阅读 544 喜欢 0 chrome系列 可选配置

接下来,我们综合上面的配置,再加一个选项页面配置,做一个天气预报的小栗子。

栗子:天气预报:

主要是使用options_page参数,增加配置页面。

manifest.json
{
	"manifest_version":2,
	"name":"天气预报",
	"version":"1.0",
	"description":"获取天气预报,同时可以配置不同地区的获取",
	"icons":{
		"16":"img/icon16.png"
	},
	"browser_action":{
		"default_icon":{
			"16":"img/icon16.png"
		},
		"default_title":"天气预报",
		"default_popup":"popup.html"
	},
	"options_page":"options.html",
	"permissions":[
		"https://free-api.heweather.com/s6/weather/now?*"
	]
}

栗子里面使用的API是和风天气,注册下就可以免费使用。

根据上面我们的json配置,需要有两个页面: options.html popup.html.

options.html
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>设定城市</title>
</head>
<body>
	<input type="text" name="city" id="city" placeholder="请输入您所在的城市,默认泰安">
	<input type="button" id="save" value="保存">
</body>
</html>
<script type="text/javascript" src="options.js"></script>

options.js

var city = document.getElementById('city');

var save = document.getElementById('save');

var value = localStorage.city || '泰安';

city.value = value;

save.onclick = function(){
	localStorage.city = city.value;
	alert('保存成功');
}

我们默认使用一个地址,然后将用户提交的地址,保存在localStorage中。

popup.html
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>天气</title>
	<style>
		#tianqi{
			min-width:200px;
			min-height:50px;
		}
	</style>
</head>
<body>
	<div id="tianqi">
		
	</div>
</body>
</html>
<script type="text/javascript" src="popup.js"></script>

popup.js

var request = function(url,cb){
	var xhr = new XMLHttpRequest();
	xhr.open('GET',url);
	xhr.onreadystatechange = function(){
		if(xhr.readyState ==4 && xhr.status == 200){
			cb(xhr.responseText);
		}
	}
	xhr.send();
}

var url = 'https://free-api.heweather.com/s6/weather/now';
var city = localStorage.city || '泰安';
var key = '注册后的KEY';
url = url + '?location='+city+'&key='+key;
request(url,function( res ){
	var tianqi = document.getElementById('tianqi');
	var obj = JSON.parse(res);
	console.log(obj);
	obj = obj.HeWeather6[0];
	var html = '当前地区:'+obj.basic.location+',天气:'+obj.now.cond_txt+',风向:'+obj.now.wind_dir;
	tianqi.innerHTML = html;
});
看效果

效果图

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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
chrome 如何查看placeholder样式以及其他伪类样式
最近有个小功能需要一些基础数据,找了一下在小程序上有发现,暂时还没找到他的网站,想着把这些数据爬一些下来做为基础数据使用的。本来还想着直接反编译小程序的,没想到微信变更了加密方式,以前反编译的路子走不通了。
上一章,我们学习和了解了websocket 是什么以及初始搭建,接下来,我们继续了解,如何进行广播以及对应的私聊呢。
很久之前学习chrome扩展插件的时候已经做过一个了,好久没咋用,最近又跑了一个存储服务,准备在配合这个服务做个图床,以后就用这个了,之前的服务器到期忘了迁移数据都没了,这次换了服务器,在家里了,估计以后不会再做了吧,这个算是最后一个了,有啥问题就在这个进行优化了。
最近有一个任务一直在占满cpu, 总是会让我的服务器宕机,可是还得跑,想来想去想到了docker,印象中可以对cpu进行限制,这里简单记录下过程。
功能来源于客户需求。客户有需求想把班级内所有学生的错题本生成pdf文档下载下来... 目前没有做这个功能,只有页面,还好chrome浏览器有保存pdf的功能,但是一想到这么多的学生,这么多的学科、以及这么多的参数... 还好有puppeteer
BUG 报错Tainted canvases may not be exported 。 在通过canvas 调用 toDataURL的时候出现的问题。
前一阵子做了个图床,可以粘贴上传,查看服务器上的文件... 但是自己的服务器总是有问题..空间还小,就怕哪天没钱续费了。同事昨天想要一个七牛的图床,在网上找了下,只找到了 qiniu upload files插件,自己使用了下,挺好用,但是没有复制粘贴