当前位置: 首页 > news >正文

山东一级造价师考试时间南宁seo多少钱报价

山东一级造价师考试时间,南宁seo多少钱报价,旅游网页设计图,太子河网站建设音乐分享: Future Islands - 《Aladdin》 中年大叔的抖腿新专辑《The Far Field》 —————————————————————————————————————————————————————————————————————— 项目截图: 项目地…

音乐分享:

Future Islands - 《Aladdin

中年大叔的抖腿新专辑《The Far Field》

——————————————————————————————————————————————————————————————————————

项目截图:

项目地址:https://github.com/uustoboy/set-region

项目说明:

一般公司有线上环境和测试环境(还有可能要改host)

比如:

  线上:http://www.xxx.com/xx/xx.html

  测试:http://www.xxx.dev/xx/xx.html

这个chrome插件,主要功能就是简单的把当前打开的页面连接切换(不改host),

原理很简单就是利用JS正则比配字符串然后重新加载一遍路径;

项目截图:

目录说明:

1 |---manifest.json----------------配置文件
2 |---static-----------------------静态资源:css/img/js
3 |---template---------------------模板文件html

manifest.json(配置文件):

{"name" : "域名助手",   "version": "0.1","manifest_version": 2,"description": "域名助手:切换测试环境与正式环境","icons": {"16": "static/img/icon16.png","48": "static/img/icon48.png","128": "static/img/icon128.png"},"browser_action": {"default_icon": "static/img/icon16.png","default_title": "域名助手","default_popup": "template/setting_popup.html"},"background": {"persistent": true,"scripts": ["static/js/jquery.min.js","static/js/settings.js","static/js/menus.js"]},"permissions":["tabs","activeTab","storage","contextMenus"]
}

template/setting_popup.html:(插件展示页)

 1 <!DOCTYPE html>
 2 <html  lang="zh-CN">
 3 <head>
 4     <title>域名助手</title>
 5     <meta charset="utf-8">
 6     <link rel="stylesheet" href="../static/css/reset.css">
 7     <link rel="stylesheet" href="../static/css/popup.css"/>
 8     <script type="text/javascript" src="../static/js/jquery.min.js"></script>
 9     <script type="text/javascript" src="../static/js/settings.js"></script>
10 </head>
11 <body>
12     <div class="set-main">
13         <div class="set-title">
14             域名助手 <span class="slide-btn">[切换已添加页]</span>
15         </div>
16         <div class="set-warp">
17             <div class="set-slide">
18                 <div class="set-left">
19                     <div class="set-p fn-clear">
20                         <div class="set-txt">原始域名:(http/https)</div>
21                         <input type="text" name="" placeholder="字符串" value="" class="set-input input-origin">
22                         <input type="checkbox" checked="checked" class="set-checkbox" name="" value="">
23                     </div>
24                     <div class="set-p">
25                         <div class="set-txt">替换域名:(http/https)</div>
26                         <input type="text" placeholder="字符串" checked="checked" name="" value="" class="set-input input-replace">
27                         <input type="checkbox" checked="checked" class="set-checkbox" name="" value="">
28                     </div>
29                     <div class="set-p">
30                         <div class="set-txt">别名:</div>
31                         <input type="text" name="" placeholder="字符串" value="" class="set-input input-alias">
32                     </div>
33                     <div class="set-p">
34                         <a href="javascript:;" class="set-btn set-add">添加</a>
35                         <a href="javascript:;" class="set-btn set-switch">切换</a>
36                     </div>
37                 </div>
38                 <div class="set-right">
39                     <div class="set-list">
40                         <ul>
41                         </ul>
42                     </div>
43                 </div>
44             </div>
45         </div>
46     </div>
47 </body>
48 </html>

static/js/settings.js(主页面js):

let  region={};
let Max_Size = 10; chrome.storage.local.get('region',function(result){region = result.region || {};creaList(region);});$(function(){$('.set-add').click(function(){let _originVal = $.trim( $('.input-origin').val() );let _origin_agre = $('.input-origin').next().get(0).checked;let _replaceVal = $.trim( $('.input-replace').val() );let _replace_agre = $('.input-replace').next().get(0).checked;let _aliasVal = $.trim( $('.input-alias').val() );if( countNum(region) > Max_Size ){return boom('最多添加10个!');}if( region[_aliasVal] != undefined ){return boom('已添加!');}if( _originVal=="" || _replaceVal=="" || _aliasVal=="" ){return boom('不能为空!');}let jsons = {};region[_aliasVal] = jsons[_aliasVal] = {"origin" :_originVal,"origin_agre" : _origin_agre,"replace": _replaceVal,"replace_agre" : _replace_agre,"alias":_aliasVal}chrome.storage.local.set({'region':region}, function() {creaList(jsons);boom('添加完成!');$('.input-origin').val('');$('.input-replace').val('');$('.input-alias').val('')});});$('.set-switch').click(function(){chrome.tabs.query({active: true, currentWindow: true}, function(tabs){  let href = tabs[0].url;let url = '';let agreement = '';for( let val in region ){let o = region[val].origin;let r = region[val].replace;let origin_agre = region[val].origin_agre;let replace_agre = region[val].replace_agre;let origin_reg = new RegExp(o);	let replace_reg = new RegExp(r);if ( origin_reg.test(href) ) {if( origin_agre && replace_agre || !origin_agre && !replace_agre){url = href.replace(o, r);}else if( origin_agre && !replace_agre  ){agreement = href.replace("http",'https');url = agreement.replace(o, r);}else if( !origin_agre && replace_agre  ){agreement = href.replace("https",'http');url = agreement.replace(o, r);}chrome.tabs.update(tabs[0].id, {url: url}, function(tab){});}else if( replace_reg.test(href) ){if( origin_agre && replace_agre || !origin_agre && !replace_agre){url = href.replace(r, o);}else if( origin_agre && !replace_agre ){agreement = href.replace("https",'http');url = agreement.replace(r,o);}else if( !origin_agre && replace_agre ){agreement = href.replace("http",'https');url = agreement.replace(r,o);}		chrome.tabs.update(tabs[0].id, {url: url}, function(tab){});}}}); });$('.slide-btn').click(function(){if( $('.set-list li').length<= 0 ){return boom('列表为空!');}if( $('.slide-btn').is('.cur') ){$('.slide-btn').removeClass('cur');$('.set-slide').animate({'left':0},'fast',function(){$('.slide-btn').html('[切换已添加页]');});}else{$('.slide-btn').addClass('cur');$('.set-slide').animate({'left':-150},'fast',function(){$('.slide-btn').html('[切换添加页]');});}});$('.set-list').delegate('.set-close','click',function(){let $this = $(this);let _aliasVal = $this.prev().text();let $parent = $this.parent('li');$parent.remove();if( $('.set-list li').length <= 0 ){boom('列表为空!');$('.slide-btn').removeClass('cur');$('.set-slide').animate({'left':0},'fast',function(){$('.slide-btn').html('[切换已添加页]');});}if( region[_aliasVal] != undefined ){delete region[_aliasVal];}chrome.storage.local.set({'region':region}, function() {});});});function creaList(json){let $ul = $('.set-list ul');for (name in json){let html=`<li><div class="set-info">${name}</div><span class="set-close">X</span></li>`;$ul.append(html)}}function countNum( json ){let count = 0;for(let a in json){if(json[a]){count++;   }   }return count;
}function boom(txt){let html = `<div class="set-boom"><div class="set-mark"></div><div class="set-alert"><span class="set-alertxt">${txt}</span></div></div>`;let timer = null;$('body').append(html);$('.set-boom').fadeIn('fast',function(){timer = setTimeout(function(){$('.set-boom').fadeOut('fast',function(){$('.set-boom').remove();});},450);});}

 static/js/menus.js(创建右键快捷键):

//添加右键菜单;
chrome.contextMenus.create({"title": "域名助手", "contexts":["all"],"onclick":function(info,tab){let region = {};chrome.storage.local.get('region',function(result){region = result.region || {};chrome.tabs.query({active: true, currentWindow: true}, function(tabs){  let href = tabs[0].url;let url = '';let agreement = '';for( let val in region ){let o = region[val].origin;let r = region[val].replace;let origin_agre = region[val].origin_agre;let replace_agre = region[val].replace_agre;let origin_reg = new RegExp(o);	let replace_reg = new RegExp(r);if ( origin_reg.test(href) ) {if( origin_agre && replace_agre || !origin_agre && !replace_agre){url = href.replace(o, r);}else if( origin_agre && !replace_agre  ){agreement = href.replace("http",'https');url = agreement.replace(o, r);}else if( !origin_agre && replace_agre  ){agreement = href.replace("https",'http');url = agreement.replace(o, r);}chrome.tabs.update(tabs[0].id, {url: url}, function(tab){});}else if( replace_reg.test(href) ){if( origin_agre && replace_agre || !origin_agre && !replace_agre){url = href.replace(r, o);}else if( origin_agre && !replace_agre ){agreement = href.replace("https",'http');url = agreement.replace(r,o);}else if( !origin_agre && replace_agre ){agreement = href.replace("http",'https');url = agreement.replace(r,o);}		chrome.tabs.update(tabs[0].id, {url: url}, function(tab){});}}}); });}
});

后记:

 因为要调用chrome浏览器本身的接口,我得改一下打包一下安装到chrome中,很繁琐。

参考资料:

 《Chrome API》(需要FQ)

《Chrome扩展及应用开发》 

《360极速浏览器应用开放平台》(其实就是chrome扩展的翻译) 

转载于:https://www.cnblogs.com/auok/p/6749493.html

http://www.lbrq.cn/news/2426329.html

相关文章:

  • 做科学实验的网站谷歌官方app下载
  • 湖南住房和城乡建设厅网站免费培训课程
  • 站长之家 网站模板百度企业推广
  • 基于h5的个人网站建设推广关键词优化
  • 网络品牌网站建设行业关键词
  • 百度网站推广关键词怎么查合肥网站关键词优化公司
  • 怎么做类似美团的网站吗免费发帖推广网站
  • 做网站什么商品好百度官方
  • 邢台网站建设信息危机公关处理五大原则
  • 中文网站模板免费下载企业培训系统
  • 做建网站百度竞价推广计划
  • 廊坊百度推广电话长安seo排名优化培训
  • myeclipse做网站长春seo
  • 做网站用图片算侵犯著作权吗网站seo顾问
  • 张家港江阴网站设计免费建网站最新视频教程
  • 网站建设找工作宁波网络营销怎么做
  • 网站备案怎么弄中山谷歌推广
  • 郑州机械网站制作网络公司推广公司
  • 自定义wordpress后台企业网站设计优化公司
  • 企业站网络推广名风seo软件
  • 高唐网站建设服务商广州最新疫情情况
  • 自学java 做网站 多久小程序开发费用一览表
  • php 新闻网站开发最近热点新闻事件2023
  • 免费建网站哪个模板多百度关键词检测工具
  • 阿里云1m服务器可以搭建网站各种手艺培训班
  • 网投网站建设编程培训机构
  • 凡科建站怎么绑定自己的域名石家庄seo优化公司
  • 河南微网站开发长沙百度网站推广
  • 互联网公司排名2014老鬼seo
  • 企业建设网站注意事项全网网络营销推广
  • LWIP学习记录2——MAC内核
  • 设备虚拟化技术-IRF
  • jQuery 插件
  • leetcode75【经典动态规划】之:最长公共子序列
  • springboot-profile
  • 从磁记录到数据中心:磁盘原理与服务器架构的完整技术链路