如何从javascript控制台动态下载并运行javascript脚本?
我是否可以在javascript控制台中执行一行程序,从远程源下载并执行javascript脚本 我想看看是否有一种很好的方法可以下载并使用它在没有加载jQuery的随机页面上进行交互实验如何从javascript控制台动态下载并运行javascript脚本?,javascript,jquery,debugging,Javascript,Jquery,Debugging,我是否可以在javascript控制台中执行一行程序,从远程源下载并执行javascript脚本 我想看看是否有一种很好的方法可以下载并使用它在没有加载jQuery的随机页面上进行交互实验 [编辑:我知道我可以动态创建脚本元素,但有更好的方法吗?]我已经为此编写了一个小脚本 var loadjQuery = function(cb){ if(typeof(jQuery) == 'undefined'){ var scr = document.createElement('scri
[编辑:我知道我可以动态创建脚本元素,但有更好的方法吗?]我已经为此编写了一个小脚本
var loadjQuery = function(cb){
if(typeof(jQuery) == 'undefined'){
var scr = document.createElement('script');
scr.setAttribute('type', 'text/javascript');
scr.setAttribute('src', 'http://code.jquery.com/jquery-latest.js');
if(scr.readyState){
scr.onreadystatechange = function(){
if(scr.readyState === 'complete' || scr.readyState === 'loaded'){
scr.onreadystatechange = null;
if(cb === 'function'){
args = [].slice.call(arguments, 1);
cb.apply(this, args);
}
}
};
}
else {
scr.onload = function(){
if(cb === 'function'){
args = [].slice.call(arguments, 1);
cb.apply(this, args);
}
};
}
var head = document.getElementsByTagName('head')[0];
head.insertBefore(scr, head.firstChild);
}
}
这可以跨浏览器工作
编辑
我已将该脚本更新为带有回调的函数。大纲应为:
loadjQuery(function(something){
// execute code after library was loaded & executed
});
嗯,获取一个很长的javascript代码片段并将其全部放在一行是非常简单的:) 这种方法需要几行代码,您可以将它们混合到一行代码中(但我想您正在寻找一种更短的解决方案)。 您必须评估两个脚本标记的内容才能加载GoogleAjax库——仅此而已。不过,你可能需要打个电话才能得到第一个
现在,您可以在目标网站的控制台上使用该库的所有功能。nice!刚刚试过你的代码,效果很好。如果有一种方法可以将其加载到chrome中,并提供一些易于使用的快捷方式,那将是一件非常美妙的事情……我猜这就是我必须为之编写chrome扩展的事情+1.
scr.setAttribute('type','text/javascript')代码>是多余的。另外,您可以使用scr.src=…
而不是scr.setAttribute('src',…)
。变量“cb”是什么?哈哈!不要介意。我知道是回调函数。。。这会派上用场的。谢谢!是的,我想你是对的,我想这就是bookmarklet的含义:)[编辑:有人比我抢先一步!-很高兴我现在问了…]对,这就是bookmarklet功能-我经常使用它来包括firebug lite