我有一个JavaScript函数库,我希望能够从web浏览器的开发人员控制台访问它。我希望能够与网页定义的函数和变量并行运行我的函数。
我看到的一个解决方案就是直接将代码复制/粘贴到浏览器控制台中,然后使用它,但是如果有一个更优雅的解决方案,将会更好,特别是因为我的代码库可能会增长很多,而且我不想每次加载时都要复制/粘贴。
我研究过的另一个解决方案是使用Chrome扩展。Chrome扩展内容脚本(Scripts.html#主机-页面-通信)允许JavaScript代码在访问网页时自动运行,但是上面的网页声明
“内容脚本不能使用由网页或其他内容脚本定义的变量或函数。”
还有别的办法来完成这件事吗?
谢谢你的帮助!
发布于 2013-07-06 22:44:02
更新(2013年7月7日):
我更新到火狐v22,并发现在这个最新的版本(或最后几个版本以及.我不确定)内置的Web工具有一个Javascript (按Shift + F4来提取它),它允许您输入一些代码,或者,在您的例子中,加载一个JS文件并在加载的页面上运行它。
我还没有对它进行广泛的测试,但是我向现有的页面添加了几个变量,它们都可以通过内置控制台和Firebug的控制台访问。只需执行File > Open File打开JS文件,然后执行Execute > Run。
一种选择是创建书签(可重用,可以注入到任何页面),但它只适用于最简单的脚本。请参阅:这里
发布于 2013-07-07 02:28:47
在浏览器中加载页面后,所有javascript函数都将位于"window“对象下。就像如果你有
function mytestfunciton() {
console.log('This is a test');
}在您的控制台窗口中,只需尝试以下几个
window.mytestfunciton();
//and get the response below
This is a test 还可以将它们封装在全局变量中,如下所示
var myapp = {};
myapp.add = function(a,b) {
myapp.sumvalue = a + b;
console.log('Sum Value:'+myapp.sumvalue);
};
myapp.substract = function (a,b) {
myapp.differencevalue = a - b;
console.log('Difference Value:'+myapp.differencevalue);
};您的所有函数现在都包装在全局变量myapp下,您现在可以使用以下内容从控制台调用它们
myapp.add(5,4);或者像以前一样使用全局“窗口”对象。
window.myapp.add(5,4);https://stackoverflow.com/questions/17507686
复制相似问题