从firebug控制台调用自定义函数

Calling custom functions from firebug console

本文关键字:自定义函数 调用 控制台 firebug      更新时间:2023-09-26

我创建了一个文档,它加载了一个.js文档,该文档具有我创建的一些JQuery函数。我想使用firebug控制台在我的html文档上快速测试这些函数的功能。但当我尝试在控制台中调用这些函数时,我没有得到任何响应。

例如:

  • 我有一个index.html,它调用我的JS:

    <script src="jquery.js" type"text/javascript"></script>
    <script src="myfunctions.js" type="text/javascript"></script>
    
  • Myfuntions.js中定义了以下内容:

    function showAbout(){
      $('div#about').show("slow");
      $('.navbar #about-button').attr('disabled', true); 
    }
    

问题:

当我尝试从index.html上的控制台调用showAboutshowAbout()时,我没有得到任何更改。然而,当我直接从控制台调用$('div#about').show("slow");$('div#about').show("slow");时,我会得到预期的行为
从控制台调用用户定义函数的正确方法是什么?

如果在全局范围内定义了showAbout,则应该能够在控制台中编写showAbout();并查看结果。如果没有,那么您可能将函数放入范围函数中,如下所示:

(function() {
    function showAbout() {
    }
})();

如果是这样,对您有好处,您已经避免创建全局变量/函数。但这确实意味着你不能从控制台访问这些函数,因为控制台只能访问全局范围。

如果你想导出其中的任何一个,以便从控制台使用它们(可能只是暂时的,用于调试),你可以这样做:

(function() {
    window.showAbout = showAbout;
    function showAbout() {
    }
})();

这显式地将showAbout属性放在引用函数的全局对象(window)上。然后控制台中的showAbout();将工作。

您的showAbout()可能不在全局范围内。

它可能由$(document).ready()代码封装,其作用域仅限于该函数。

为了测试,您可以在下面添加。。。

window.showAbout = showAbout;

一旦定义了函数,就可以从控制台调用showAbout()