gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:06:50 24 4
gpt4 key购买 nike

在访问定义在不同位置的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com