微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

访问在不同文件中定义的javascript函数

我有两个看似相关的问题,访问在不同的地方定义的javascript函数.我遇到的第一个问题是调用我在firgbug或safari控制台中定义的函数.我定义了一个名为getRed的函数,如下所示:

    function getRed(row, col)
    {
           // do something stuff and return the red value as a float
    }

我希望能够从控制台测试这个功能,但每次我尝试调用getRed(1,1);例如,我收到如下错误:ReferenceError:未定义getRed

我是否需要进行特殊调用来定义命名空间?我在一个名为drawing.js的javascript文件中定义了这个函数,它在我的html页面中很早就定义了.

我遇到的另一个问题是从我的dojo调色板的onChange:方法调用一个drawing.js文件中定义的函数.以下是调色板的代码

<script type="text/javascript" src="drawing.js"></script>
 //the method colorChange is inside drawing.js which is defined before the dojo 
 //color palette
 <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.xd.js"
djConfig="parSEOnLoad: true">
</script>
<script type="text/javascript">
        dojo.require("dojox.widget.ColorPicker");
        dojo.addOnLoad(function() {
            var c = new dojox.widget.ColorPicker({
                onChange: function(val)
                {
                    console.log("BEFORE");
                    colorChange(val);
                    console.log("AFTER");
                }
            },
            "picker1");
        });
    </script>

以下是文件drawing.js中changeColor的定义:

    function colorChange(val)
{
    console("colorChange!");
}

每次我点击调色板时都会出现以下错误:ReferenceError:colorChange未定义.

我是javascript的新手,我确信这两个问题有一个非常相似和简单的解决方案,但我无法在线找到答案.谁能帮我吗?

我很确定脚本正在加载,因为此屏幕截图显示

解决方法:

控制台与您的页面处于同一全局范围.由于getRed()和colorChange()都是在drawing.js中定义的,并且都不能在全局范围内找到,我怀疑drawing.js没有被正确包含.

要检查是否实际包含drawing.js(即,您的文件路径正确),请转到Firebug的“脚本”选项卡.它将列出当前页面上包含的所有脚本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐