访问在不同文件中定义的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的“脚本”选项卡.它将列出当前页面上包含的所有脚本.
标签:javascript,callback,dojo,color-palette 来源: https://codeday.me/bug/20190630/1339571.html