//TIP:先通过Tampermonkey编写为可用脚本,再套用此通用模版,再拖到Chrome安装为扩展即可。

/* 通用注入原型3:*/

switch (window.location.pathname)
{
case "???":
inject(YeScript.newFunc);
break;
}
function inject(func)
{
if (typeof (func) != 'function')
return;
YEJS = "//================== [YEJS START] =======================\n(";
YEJS += func;
YEJS += ")();";
YEJS += "\n//================== [YEJS ENDED] =======================";
script = document.createElement('script');
script.type = 'text/javascript';
script.id = 'YEJS';
script.innerHTML = YEJS;
var scriptTag = document.getElementById('YEJS');
if (scriptTag) document.body.removeChild(scriptTag);
document.body.appendChild(script);
}

/* 通用注入原型2:*/

var reallyJs = (function YeDoIt()
{
//通过将实际的待注入网页的脚本写到这里即可。
}.toString()); YEJS = "//================== [YEJS START] =======================\n";
YEJS += reallyJs;
YEJS += "\nYeDoIt();";
YEJS += "\n//================== [YEJS ENDED] =======================";
script = document.createElement('script');
script.id = 'YEJS';
script.type = 'text/javascript';
script.innerHTML = YEJS;
var scriptTag = document.getElementById('YEJS');
if (scriptTag) document.body.removeChild(scriptTag);
document.body.appendChild(script);

  

/* 通用注入原型1:*/

var YEJS="\
//================== [YEJS START] =======================\n\
将要注入的JS:
1.需要替换所有[双引号]为[单引号] 或\"引号!
2.需要替换所有\n为\\n\\\n
3.不留空行或空行也要用\n\符号代替!
4.将正则表达式中的\d\w等改为\\d\\w才有效!
\n//================== [YEJS ENDED] ======================="; //======================================================
// 直接注入JS到网页中,可自由操纵原网页的任何脚本!
//======================================================
script = document.createElement('script');
script.type = 'text/javascript';
script.id = 'YEJS';
script.innerHTML = YEJS;
var scriptTag = document.getElementById('YEJS');
if (scriptTag) document.body.removeChild(scriptTag);
document.body.appendChild(script);
//======================================================
// 插件的JS与原网页的JS唯一的交流通道为网页DOM树!
//======================================================

  

浏览器插件 - 通用注入模版JS的更多相关文章

  1. js:浏览器插件

    1.chrome background.js //chrome.webRequest.onBeforeRequest.addListener(function(info) { // chrome.ta ...

  2. 判断浏览器 插件 jquery.ua.js

    判断浏览器 插件 jquery.ua.js /*! * jquery.ua.js * @link https://github.com/cloudcome/jquery.ua * @author yd ...

  3. chrome内核浏览器插件的使用--Tampermonkey(油猴插件)

    Tampermonkey(油猴插件),这个插件是一个用于改造你浏览器打开的网站的插件.它可以在你打开的网页中注入任意js脚本,以达到你想要的外加功能.可以说非常不错.很多时候也值得使用. 这是个chr ...

  4. nodejs + webpack4 + babel6 结合写Chrome浏览器插件记录

    最近任务不忙,有时间了看一下Chrome插件相关的东西,于是想用nodejs + webpack写一个能直出插件的小工具. 1.nodejs + babel6 + webpack4 在写之前,是有把它 ...

  5. Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率..

    Atitit.hybrid混合型应用 浏览器插件,控件的实现方式 浏览器运行本地程序的解决方案大的总结---提升用户体验and开发效率.. 1. hybrid App 1 1.1. Hybrid Ap ...

  6. atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o

    atitit. applet 浏览器插件 控件 的环境,开发,提示总结o9o 1. 建立applet:: 1 2. Applet 码 1 3. Applet (awt)跟japplet (swing) ...

  7. chrome浏览器插件启动本地应用程序

    chrome浏览器插件启动本地应用程序 2014-04-20 00:04:30|  分类: 浏览器插件|举报|字号 订阅     下载LOFTER我的照片书  |     chrome的插件开发这里就 ...

  8. mac 下基于firebreath 开发多浏览器支持的浏览器插件

    mac 下基于firebreath 开发多浏览器支持的浏览器插件 首先要区分什么是浏览器扩展和浏览器插件;插件可以像本地程序一样做的更多 一. 关于 firebreath http://www.fir ...

  9. 用Javascript编写Chrome浏览器插件

    原文:http://homepage.yesky.com/62/11206062.shtml 用Javascript编写Chrome浏览器插件 2010-04-12 07:30 来源:天极网软件频道 ...

随机推荐

  1. NSFileHandle 和 NSFileManager的一些用法

    文件操作 NSFileManager 常见的NSFileManager文件的方法: -(BOOL)contentsAtPath:path 从文件中读取数据 -(BOOL)createFileAtPat ...

  2. 安装oracle 11g详细过程仅供参考

  3. 3141: [Hnoi2013]旅行 - BZOJ

    Description Input 第一行为两个空格隔开的正整数n, m,表示旅行的城市数与旅行所花的月数.接下来n行,其中第 i行包含两个空格隔开的整数Ai和Bi,Ai表示他第i个去的城市编号.Bi ...

  4. js注册登录审核

    <script type="text/javascript"> $(function(){ $("#sendSms").click(function ...

  5. CSS的定位属性实现text-shadow属性的文本下产生阴影效果

    只要先理解text-shadow的原理,就能用定位元素进行效果的模仿. text-shadow: h-shadiv v-shadov blur color h-shadv为文本水平移动的距离,正值相对 ...

  6. 团体程序设计天梯赛-练习集L1-018. 大笨钟

    L1-018. 大笨钟 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜 ...

  7. struts2 action中传递两个参数到url

    <action name="outInDetail" class="formManage_outInDetailAction"> <resul ...

  8. jmeter HTTP信息头管理器使用一例

    最近在测试过程中遇到一个问题,被测系统会检测http header:如果不包含制定内容会引发302跳转操作,从而是测试达不到效果.解决办法,增加http 信息头管理器,直接上图 此处注意: 1.此处“ ...

  9. 李洪强iOS开发之拓展篇—UIDynamic(简单介绍)

      iOS开发拓展篇—UIDynamic(简单介绍) 一.简单介绍 1.什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能 ...

  10. sc.exe管理系统服务

    sc.exe管理系统服务 下面介绍SC,SC QC,and SC QUERY sc.exe create HomerSatelliteDesktopGC binPath= "D:XXXXXX ...