首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将JavaScript自动注入网页,以便可以从开发人员控制台访问其变量

如何将JavaScript自动注入网页,以便可以从开发人员控制台访问其变量
EN

Stack Overflow用户
提问于 2013-07-06 22:32:58
回答 2查看 11.7K关注 0票数 4

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

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

我研究过的另一个解决方案是使用Chrome扩展。Chrome扩展内容脚本(Scripts.html#主机-页面-通信)允许JavaScript代码在访问网页时自动运行,但是上面的网页声明

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

还有别的办法来完成这件事吗?

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2013-07-06 22:44:02

更新(2013年7月7日):

我更新到火狐v22,并发现在这个最新的版本(或最后几个版本以及.我不确定)内置的Web工具有一个Javascript (按Shift + F4来提取它),它允许您输入一些代码,或者,在您的例子中,加载一个JS文件并在加载的页面上运行它。

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

一种选择是创建书签(可重用,可以注入到任何页面),但它只适用于最简单的脚本。请参阅:这里

票数 3
EN

Stack Overflow用户

发布于 2013-07-07 02:28:47

在浏览器中加载页面后,所有javascript函数都将位于"window“对象下。就像如果你有

代码语言:javascript
复制
function mytestfunciton() {
  console.log('This is a test');
}

在您的控制台窗口中,只需尝试以下几个

代码语言:javascript
复制
window.mytestfunciton();
//and get the response below
This is a test 

还可以将它们封装在全局变量中,如下所示

代码语言:javascript
复制
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下,您现在可以使用以下内容从控制台调用它们

代码语言:javascript
复制
myapp.add(5,4);

或者像以前一样使用全局“窗口”对象。

代码语言:javascript
复制
window.myapp.add(5,4);
票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17507686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档