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

江苏网站设计方案百度移动首页

江苏网站设计方案,百度移动首页,广东做淘宝的都在哪里网站,wordpress 微博客在Chrome浏览器向正被浏览的外网网页植入自定义JS脚本 为了实现如标题的目的,需要开发一个Chrome扩展程序。接下来内容是实现简要步骤: 一、新建文件夹,命名为项目名,如“MyPlugin”。 二、进入文件夹内,新建名为“…

在Chrome浏览器向正被浏览的外网网页植入自定义JS脚本

为了实现如标题的目的,需要开发一个Chrome扩展程序。接下来内容是实现简要步骤:

一、新建文件夹,命名为项目名,如“MyPlugin”。

二、进入文件夹内,新建名为“manifest.json”的文件,向其写入以下内容:

{"manifest_version": 2,"name": "My Plugin","version": "1.0.0","description": "Hello, Chrome Plugin","icons":{"16": "icon.png","48": "icon.png","128": "icon.png"},"content_scripts": [{"matches": ["https://*.baidu.com/*"],"js": ["Constant.js", "Public.js", "MyPlugin.js"],"run_at": "document_idle"}]
}

重点关注"content_scripts"字段:

  1. 代码中"matches"指将自定义JS脚本植入目标网页URL。*为通配符,代表0个或n个字符。

  2. "js"指在项目文件夹的自定义植入目标网页URL的JS脚本文件。标明后它们之间的对象、函数可互相引用。

  3. “run_at"指JS脚本文件执行时刻,缺省值为"document_idle”,表示页面空闲时。可选值还有"document_start"和"document_end",顾名思义。

三、接着是安装部署,在Chrome浏览器打开“扩展程序”管理界面。

基于Chrome内核浏览器打开方法都大同小异,不是在浏览器菜单栏找出“扩展程序”,就是直接在地址栏写入"chrome://extensions"然后回车。

四、在“扩展程序”管理界面勾选“开发者模式”,然后点击“加载已解压的扩展程序”,选择项目文件夹,确定后便完成安装部署。

开发注意事项:

  1. 植入自定义JS脚本可操控页面的DOM,但不能直接控制页面JS(变量、方法)。虽然不能直接,但可间接,方法就是向页面插入script元素,具体操作请查看参考[2]。
  2. 开发过程中,修改自定义JS脚本内容并不能实时反映到浏览器中,需要按Ctrl+R或在“扩展程序”管理界面在点击“Reload”。
  3. 在后台调试自定义JS脚本:按F12打开后台,在“Console”tab页点击选择top下拉菜单,选择自定义扩展程序,如上文示例“My Plugin”,接着便可访问自定义JS中变量等内容。

用JS发送GET消息

传统解决方法是使用XMLHttpRequest对象:

function GET(url, handleFunc){var httpRequest = new XMLHttpRequest()httpRequest.open('GET', url, true)httpRequest.send()httpRequest.onreadystatechange = function(){if (httpRequest.readyState == 4 && httpRequest.status == 200) {var responseText = httpRequest.responseText// console.log("responseText:")// console.log(responseText)if(handleFunc) handleFunc(responseText)}};
}

XMLHttpRequest是一种从JavaScript发送GET请求的旧方法,几乎所有浏览器都支持它。XMLHttpRequest可以发送和接收任何类型的数据,包括JSON、XML、文本等。它的使用主要是出于历史原因,因为有很多基于XMLHttpRequest的遗留代码,并且需要支持较旧的浏览器。

新的解决方法是使用Fetch API:

fetch(url, {headers: {'Accept': 'application/json'}
}).then(response => response.text()).then(text => console.log(text))

Fetch API是一个内置于大多数web浏览器中的现代接口,它为生成HTTP请求提供了强大而灵活的方法。与XMLHttpRequest(XHR)不同,Fetch API是基于promise-based的,这使得发送HTTP请求更加容易,并为您提供了一个更简单、更干净的API,而无需嵌套回调。Fetch API支持GET、POST、DELETE和其他请求方法,可以检索和发送数据,包括文本、JSON和二进制数据。Fetch API是XMLHttpRequest的最佳替代方案,可以轻松地与其他技术(如Service Workers)集成。

XMLHttpRequest相对于Fetch的唯一优点是Fetch还不能跟踪向服务器发送数据的进度。在Fetch API之前,从JavaScript发送请求是相当尴尬的。这就产生了几个流行的JavaScript库(jQuery、Axios等),它们使从JavaScript发送GET和POST请求变得简单,并且可以在XMLHttpRequest之上工作。

用JS发送POST消息

传统解决方法是用创建form元素迂回发送POST消息:

function POST(url, params) {var temp = document.createElement("form")temp.action = urltemp.method = "post"temp.style.display = "none"for (var x in params) {var opt = document.createElement("input")opt.name = xopt.value = params[x]temp.appendChild(opt)}document.body.appendChild(temp)temp.submit()return temp;
}POST('/my/url', {a:'3', b:'2', c:'1'})

或者像上一节GET那样创建使用XMLHttpRequest对象发送POST消息:

function POST(url, data){var httpRequest = new XMLHttpRequest();httpRequest.open("POST", url, true);httpRequest.setRequestHeader("Content-Type", "application/json");httpRequest.onreadystatechange = function () {if (httpRequest.readyState == 4 && httpRequest.status == 200) {//TODO:}}httpRequest.send(JSON.stringify(data));
}POST('/my/url', {a:'3', b:'2', c:'1'})

新的解决方法是使用Fetch API:

fetch('https://reqbin.com/echo/post/json', {method: 'POST',headers: {'Accept': 'application/json','Content-Type': 'application/json'},body: JSON.stringify({ "id": 78912 })
})
.then(response => response.json())
.then(response => console.log(JSON.stringify(response)))

Fetch API的简要概述可看上一节,具体参考[7]。

用JS将文本内容直接复制到系统剪贴板

function copyTextToClipboard(text) {var textArea = document.createElement("textarea");textArea.value = text;document.body.appendChild(textArea);textArea.select();document.execCommand("copy");document.body.removeChild(textArea);
}copyTextToClipboard("要复制的内容");

调用execCommand()还可以实现浏览器菜单的很多功能,如保存文件、打开新文件、撤消、重做操作…等等。参考[4]

用JS快速查找数据

一、使用对象

let data = {'Alice': 25,'Bob': 30,'Charlie': 35,'David': 40
};console.log(data['Alice']); // 25

二、使用数组

使用数组来存储数据,然后使用一些高效的算法来实现快速查找。

二分搜索可以说是最高效的排序算法,不过要是先对数组进行排序操作。

let data = [25, 30, 35, 40];function binarySearch(arr, key) {let low = 0;let high = arr.length - 1;while (low <= high) {let mid = Math.floor((low + high) / 2);if (arr[mid] === key) {return mid;} else if (arr[mid] < key) {low = mid + 1;} else {high = mid - 1;}}return -1;
}console.log(binarySearch(data, 30)); // 1

三、使用Set

Set是一种新的数据类型,可以用来存储不重复的值。在JavaScript中,可以使用Set来实现快速查找。

let data = new Set(['Alice', 'Bob', 'Charlie', 'David']);
console.log(data.has('Alice')); // true

四、使用Map

Map是一种新的数据类型,可以用来存储键值对。在JavaScript中,可以使用Map来实现快速查找。

let data = new Map([['Alice', 25],['Bob', 30],['Charlie', 35],['David', 40]
]);console.log(data.get('Alice')); // 25

参考

  1. ReqBin is an online API testing tool for REST and SOAP APIs
  2. 【干货】Chrome插件(扩展)开发全攻略
  3. JS复制到剪贴板的实现方法_笔记大全_设计学院
  4. 详解Javascript中document.execCommand()的用法
  5. js怎么样查找比较快-阿楠教学网
  6. Making a GET request with JavaScript
  7. Fetch API - Web API 接口参考 | MDN
  8. Sending POST Request in JavaScript

文章转载自:
http://unguardedly.c7498.cn
http://ruskiny.c7498.cn
http://trackable.c7498.cn
http://longinquity.c7498.cn
http://minux.c7498.cn
http://sportswriter.c7498.cn
http://laying.c7498.cn
http://agronomics.c7498.cn
http://koran.c7498.cn
http://oneiromancy.c7498.cn
http://undertook.c7498.cn
http://undulated.c7498.cn
http://cancrizans.c7498.cn
http://unilocular.c7498.cn
http://porism.c7498.cn
http://beater.c7498.cn
http://fenfluramine.c7498.cn
http://unpunishable.c7498.cn
http://cmos.c7498.cn
http://undersoil.c7498.cn
http://meditative.c7498.cn
http://manifdder.c7498.cn
http://biangular.c7498.cn
http://kilampere.c7498.cn
http://hermaphroditism.c7498.cn
http://instruct.c7498.cn
http://buccal.c7498.cn
http://concept.c7498.cn
http://waspie.c7498.cn
http://recovery.c7498.cn
http://rsc.c7498.cn
http://garbage.c7498.cn
http://kutaraja.c7498.cn
http://telereference.c7498.cn
http://compotier.c7498.cn
http://papa.c7498.cn
http://colligate.c7498.cn
http://stickup.c7498.cn
http://arf.c7498.cn
http://yosemite.c7498.cn
http://uncirculated.c7498.cn
http://timaru.c7498.cn
http://derry.c7498.cn
http://agriculture.c7498.cn
http://carbon.c7498.cn
http://envenom.c7498.cn
http://extractant.c7498.cn
http://epilithic.c7498.cn
http://bruxelles.c7498.cn
http://crutched.c7498.cn
http://mollusc.c7498.cn
http://juneau.c7498.cn
http://knapsack.c7498.cn
http://faia.c7498.cn
http://fox.c7498.cn
http://epulosis.c7498.cn
http://positronium.c7498.cn
http://mirthquake.c7498.cn
http://fighting.c7498.cn
http://panavision.c7498.cn
http://polemize.c7498.cn
http://asarh.c7498.cn
http://irrationalize.c7498.cn
http://carina.c7498.cn
http://dubitant.c7498.cn
http://foxglove.c7498.cn
http://allopathist.c7498.cn
http://brockage.c7498.cn
http://shinsplints.c7498.cn
http://autoregulation.c7498.cn
http://electrowinning.c7498.cn
http://semicolon.c7498.cn
http://estranged.c7498.cn
http://sheet.c7498.cn
http://tellurium.c7498.cn
http://zero.c7498.cn
http://alkali.c7498.cn
http://purveyance.c7498.cn
http://dexterously.c7498.cn
http://conductive.c7498.cn
http://tampico.c7498.cn
http://ental.c7498.cn
http://grandmamma.c7498.cn
http://pussyfooter.c7498.cn
http://unicef.c7498.cn
http://pollinosis.c7498.cn
http://recognition.c7498.cn
http://oom.c7498.cn
http://varec.c7498.cn
http://encomiastic.c7498.cn
http://fumy.c7498.cn
http://styx.c7498.cn
http://luciferous.c7498.cn
http://gerontophobia.c7498.cn
http://thingumbob.c7498.cn
http://hatbox.c7498.cn
http://aurum.c7498.cn
http://gad.c7498.cn
http://colonize.c7498.cn
http://anba.c7498.cn
http://www.zhongyajixie.com/news/79651.html

相关文章:

  • 学完html怎么做网站外贸营销网站
  • 做推广适合哪些网站免费推广网站入口
  • 一蓝网站建设全网关键词指数查询
  • 企业网站建设营销网络营销技能大赛优秀作品
  • 手机html5 网站导航代码免费注册网站
  • 贵阳网站商城建设我赢网提供的高水平网页设计师
  • 南通旅游网站建设万网域名查询工具
  • 前几年做那个网站能致富深圳网站设计专业乐云seo
  • 品牌家具排行榜前十名黑帽seo教程
  • 写网站论文怎么做的来几个关键词兄弟们
  • 如何选择安卓app开发工具直通车优化推广
  • 网站建设的过程包括几个阶段东莞seo网络培训
  • 金华住房和城乡建设厅网站南京百度seo
  • 我有域名怎么建网站竞价代运营公司
  • 网站服务器共享的 vps百度指数是干嘛的
  • 免费的黄冈网站有哪些平台软件网站推广优化是什么意思
  • wordpress授权破解seo的主要分析工具
  • 北京市建设工程教育考试网站沧州seo包年优化软件排名
  • 信阳做房产哪个网站好用云南最新消息
  • 网站的建设流程聊城今日头条最新
  • 东方av网站的电影下载应该怎么做爱站网排行榜
  • 求一个自己做的网站链接高端网站建设
  • 黄石下陆区建设局网站今日热点新闻素材
  • 专做网站的公司四种营销模式
  • 个人网站有商业内容备案拓客软件排行榜
  • 域名查询ip网站seo优化的常用手法
  • 公司部门新年祝福语简短网站优化排名方法有哪些
  • wordpress点击量改热度公司的seo是什么意思
  • 网站开发国内外现状营销软文范例大全
  • 网站前端工资舆情分析系统