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

标签 javascript callback dojo color-palette

在访问定义在不同位置的 javascript 函数时,我遇到了两个看似相关的问题。我遇到的第一个问题是调用我从 firgbug 或 safari 控制台定义的函数。我定义了一个名为 getRed 的函数,看起来像这样:

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

我希望能够从控制台测试这个函数,但每次我尝试调用 getRed(1,1);例如,我收到这样的错误:ReferenceError: getRed is not defined

是否需要专门调用来定义命名空间?我在名为 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 is not defined。

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

我很确定脚本正在加载,因为这个屏幕截图显示: enter image description here

最佳答案

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

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

关于javascript - 访问定义在不同文件中的javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5544177/

相关文章:

node.js - 在 OAuth2 身份验证调用和重定向调用之间传递值

dojo - dijit.form.Filtering选择如何以编程方式添加分隔符

javascript - React 组件渲染不正确

javascript - Input Type Range 控件在 IE 中显示为文本框

javascript - 如何通过类名在div周围添加边框

javascript - JQuery 根据 iframe 源设置 iframe 高度

java - springkafka-template 发送方法回调未注册的可能性

Java,带有回调的方法是否被认为是异步的?

javascript - Dojo build 1.7 内置包不起作用

javascript - 如何给xPage 重复控制项添加动画?