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

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

月光魔力鸭

2018-09-10 09:16 阅读 433 喜欢 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


感谢支持!

赞赏支持
提交评论
评论信息 (请文明评论)
暂无评论,快来快来写想法...
推荐
最近感觉docker挺好用的,由于测试服务器经常重装,这里先记录下compose文件,后边重装直接复制就行啦。
之前做了一段时间的上传相关的断点续传和秒传功能,这里整理下大体思路
ffmpeg 采集摄像头进行推流,然后播放,实现直播。
反爬有很多手段,字体反爬就是其中之一。之前一直都是听过,但是却没怎么在实际爬虫中遇到过,最近在一个爬虫题目网站上看到了,试了试,发现还挺麻烦,当然自己从头研究字体肯定麻烦,简单的是模块多的是,选几个就过了。
与python后端进行联调,后端协议为jsonrpc ,这里简单记录下jsonrpc的通用请求函数,并附带几个栗子
docker build 执行yum失败,找不到repo
很久之前学习chrome扩展插件的时候已经做过一个了,好久没咋用,最近又跑了一个存储服务,准备在配合这个服务做个图床,以后就用这个了,之前的服务器到期忘了迁移数据都没了,这次换了服务器,在家里了,估计以后不会再做了吧,这个算是最后一个了,有啥问题就在这个进行优化了。
最近先研究下jenkins远程部署,在自己服务器上跑一个先,简单记录下碰到的问题。