我在访问不同位置定义的 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 很陌生,我确信这两个问题有一个非常相似且简单的解决方案,但我无法在网上找到答案。谁能帮我吗?
我很确定脚本正在加载,因为此屏幕截图显示: