4

我有一个 JavaScript 函数库,我希望能够从 Web 浏览器的开发者控制台访问它。我希望能够与网页定义的函数和变量一起运行我的函数。

我看到的一种解决方案是将代码直接复制/粘贴到浏览器控制台中,然后使用它,但如果有更优雅的解决方案会更好,特别是因为我的代码库可以增长很多而且我不想要每次加载时都必须复制/粘贴。

我研究的另一个解决方案是使用 Chrome 扩展程序。Chrome 扩展内容脚本 ( https://developer.chrome.com/extensions/content_scripts.html#host-page-communication ) 允许 JavaScript 代码在访问网页时自动运行,但上述网页指出

" [内容脚本不能] 使用由网页或其他内容脚本定义的变量或函数。 "

有没有其他方法可以做到这一点?

谢谢您的帮助!

4

2 回答 2

3

更新(2013 年 7 月 7 日):
我正在更新到 Firefox v22,发现在这个最新版本(或最后几个版本)上,内置的 Web 开发工具有一个 Javascript Scratchpad(按下Shift + F4以将其拉起)可让您输入一些代码,或者在您的情况下,加载一个 JS 文件并在加载的页面上运行它。

我没有对它进行广泛的测试,但我在现有页面中添加了几个变量,它们都可以通过内置控制台和 Firebug 的控制台访问。只需File > Open File打开您的 JS 文件,然后执行Execute > Run.


一种选择是创建一个书签(可重复使用并且可以注入任何页面),但它仅适用于最简单的脚本。见:这里

于 2013-07-06T22:44:02.120 回答
-4

一旦您的页面在浏览器中加载,所有的 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);
于 2013-07-07T02:28:47.263 回答