是否有某种编程方式(或者可能是浏览器插件)允许用户在当前加载到浏览器中的网页上任意运行他们想要的任何 jQuery?
编辑:
我的动机是能够提前在页面上测试 jQuery 语法和命令,然后将它们添加到其源代码中,或者向我尝试过的页面的 web 管理员建议调整。
我一直在使用主站点的 jQuery 来运行测试。目前在 3.5.1:jQuery 下载页面
是否有某种编程方式(或者可能是浏览器插件)允许用户在当前加载到浏览器中的网页上任意运行他们想要的任何 jQuery?
编辑:
我的动机是能够提前在页面上测试 jQuery 语法和命令,然后将它们添加到其源代码中,或者向我尝试过的页面的 web 管理员建议调整。
我一直在使用主站点的 jQuery 来运行测试。目前在 3.5.1:jQuery 下载页面
您可以使用 Chrome 的控制台来执行此操作。如果您使用的是 Chrome,请右键单击该页面,然后单击“检查元素”。转到“控制台”选项卡并尝试运行$ === jQuery
. 如果你没有得到错误并且结果是true
,那么你就有了 jQuery。
如果没有,请运行以下命令将 jQuery 添加到页面:
var body = document.getElementsByTagName("body")[0];
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
body.appendChild(script);
运行这些命令后,jQuery 应该被加载到任何网页并准备好在控制台中使用:)
上面的代码应该适用于任何带有 JavaScript 控制台的浏览器。
或者,还有一些用户脚本(如 Greasemonkey 和 FireQuery),如果页面中不包含 jQuery,它们会自动运行上述代码以注入 jQuery,以便您轻松编写脚本和破解其他人的页面。
这使用了 Google CDN,它是 HTTPs 友好的、单行的和封装的:
(function(){var jQueryVersion="1";var a=document.createElement("script");a.src="//ajax.googleapis.com/ajax/libs/jquery/"+jQueryVersion+"/jquery.js";a.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(a);})()
您可以指定 jQuery 的版本,例如jQueryVersion="2.0.2"
.
FireQuery是一个很棒的 Firebug 扩展,它可以为您包含 jQuery,并且您可以从那里在控制台中使用 jQuery。
“jQuerify:使您能够将 jQuery 注入任何网页”
我编写了一个小书签,用于检查文档中是否存在 jQuery,<head>
如果它不存在则将其添加到其中,如果 jQuery 是通过脚本加载或已存在于文档中,则会显示通知(使用 jQuery)。只需将此代码添加到您的书签即可获得该功能:
javascript: (function()
{
var body = document.getElementsByTagName("body")[0];
var head = document.getElementsByTagName("head")[0];
var el = document.createElement('div');
el.id = 'jqbkstatusnote';
el.style.position = 'fixed';
el.style.top = '10px';
el.style.left = '10px';
el.style.textAlign = 'center';
el.style.color = '#fff';
el.style.padding = '3px';
el.style.fontWeight = 'bold';
el.style.display = 'none';
el.style.zIndex = '999999999';
el.style.boxShadow = '0px 0px 0px 1px #fff, 3px 3px 1px rgba(0,0,0,0.5)';
if (typeof jQuery != 'function')
{
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://code.jquery.com/jquery-latest.min.js";
head.appendChild(script);
waitForJQ();
}
else
{
el.style.border = '1px solid #522';
el.style.backgroundColor = '#744';
el.innerHTML = 'jQuery already exists in this document!';
body.appendChild(el);
jQuery('#jqbkstatusnote').fadeIn().delay(1000).fadeOut(function(){jQuery(this).remove();});
}
function waitForJQ()
{
if (typeof jQuery != 'function')
{
window.setTimeout(waitForJQ, 100);
}
else
{
el.style.border = '1px solid #235';
el.style.backgroundColor = '#457';
el.innerHTML = 'jQuery added to document!';
body.appendChild(el);
jQuery('#jqbkstatusnote').fadeIn().delay(1000).fadeOut(function(){jQuery(this).remove();});
}
}
})();
为了方便在 Chrome 中注入(并指示它的存在)jQuery,甚至进入与 Prototype 无冲突模式的HTTPS页面(指示Prototype是否也存在于页面上)您可能更喜欢jQuerify扩展(jQuerify for Chrome)质量在几年的经验中被成千上万的用户证明了。一句话:“节省您的时间”。
看一下这个:
jQuery 书签生成器 http://benalman.com/projects/run-jquery-code-bookmarklet/
eval
执行您传递给它的任何字符串,但如果它的用法是“正确的”,则有争议。
eval('$(function() { alert("hello"); }');
将在文档准备就绪时显示警报(前提是在eval
调用之前获取 jQuery)。