如何将jquery注入任何网页
How to inject jquery to any webpage
是否有任何方法可以像我们使用javascript(从url)那样将jQuery注入任何页面。使用javascript,我们可以实现
javascript:alert("b");
我试过这个,但我不知道为什么它不起作用
javascript:var x = document.getElementsByTagName("head")[0];
var y = document.createElement("script");
y.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
x.appendChild(y);
var a = document.getElementsByTagName("body")[0];
var b = document.createElement("script");
b.innerHTML = "$('p').css('border','3px solid red')"
a.appendChild(b);
这是一个bookmarklet代码,用于在任何网页中注入jquery:
javascript: (function (){
function l(u, i) {
var d = document;
if (!d.getElementById(i)) {
var s = d.createElement('script');
s.src = u;
s.id = i;
d.body.appendChild(s);
}
} l('//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js', 'jquery')
})();
更新:我根据@Monkpit的评论从URL中删除了http:部分,这非常重要,节省了很多问题。
由于异步加载jQuery,jQuery
变量不能立即使用。这意味着您不能在下一行使用jQuery;您需要等待浏览器加载jQuery并执行它。
解决方案是使用以下技术之一:
- 使用延迟(假设脚本在x秒后加载)
- 使用轮询(每x毫秒检查一次
typeof jQuery === "function"
) - 使用回调参数(附加查询字符串,如
?callback=scriptloaded
,需要服务器端支持) - 使用脚本元素的
onload
事件,如下所述
function injectScriptAndUse() {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
script.onload = function() {
$("p").css("border", "3px solid red");
};
head.appendChild(script);
}
<p>Paragraph</p>
<button onclick="injectScriptAndUse();">Click to load jQuery and change style of the paragraph</button>
您忘记了第8行中的分号。这是没有错误的代码:
javascript:var x = document.getElementsByTagName("head")[0];
var y = document.createElement("script");
y.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js";
x.appendChild(y);
var a = document.getElementsByTagName("body")[0];
var b = document.createElement("script");
b.innerHTML = "$('p').css('border','3px solid red')";
a.appendChild(b);
您可以将jQuery作为书签插入Chrome。只需复制上面的代码,创建一个随机网站的新书签。右键单击书签并选择"编辑",将代码粘贴到URL框中并选择"保存"。当您单击书签时,jQuery脚本将被注入。
-Lucas
相关文章:
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- 从谷歌chrome中的任何网页获取所有tel标签
- 我可以在ebay中使用谷歌网页字体api或任何类型的自定义字体吗
- 加载json文件时出现空白网页,没有任何错误
- 视频未在任何具有ios和Android版本的移动设备上播放,但在网页上播放
- 在网页上单击任何元素时触发 js 函数
- 如何使网页上的任何地方可点击并导航到地址,而无需使整个页面成为链接
- 处理网页上的所有/任何链接点击
- 使用 java 访问任何网页的文本字段和按钮
- 如果井号显示在网页上的任何位置,则显示某些内容
- 如何将jquery注入任何网页
- 从web应用程序中的任何网页捕获扫描的条形码
- 在网页上设置GIF动画-任何重新启动它们的方法
- 有没有一种方法可以在手机屏幕和桌面屏幕上构建一个使用不同字体的网页,而不需要编写任何JavaScript
- 如何在用户不点击任何链接或按钮的情况下,使用php或javascript强制用户在移动网页上返回两次
- Javascript网页期望至少加载一个地图,但实际上可以'不要装任何东西
- 裁剪网页上的图像在一个非线性/矩形的方式,所以任何形式的多边形
- 是否有一种方法来检查如果谷歌浏览器安装(和默认浏览器)通过网页/ JavaScript不安装任何客户端
- 如何使用asp.net web服务来刷新asp.net 4.0网页的一小部分,而无需编辑任何其他部分
- 任何网页浏览器垃圾收集删除的dom元素?(与Javascript对象相反)