【问题标题】:How to fix "Undefined is not an object" error in Javascript如何修复 Javascript 中的“未定义不是对象”错误
【发布时间】:2019-08-31 18:12:07
【问题描述】:

我正在尝试在 Illustrator 中使用脚本。其中一些需要能够导入其他脚本,所以我找到了下面的代码。当我尝试运行它时,我收到

错误 21:未定义不是对象。
第 6 行 -> var Libraries = (function(libpath){"

我查看了其他答案,似乎问题是“库”(?)未定义,我应该先定义它。可悲的是,我不知道它应该被定义为什么。或者我一般不理解这个问题。

我希望它能够导入 helloworld.jsx,从而能够运行 helloWorld 函数。它抛出了上述错误。

//Library importing function from https://gist.github.com/jasonrhodes/5286526

// indexOf polyfill from https://gist.github.com/atk/1034425
[].indexOf||(Array.prototype.indexOf=function(a,b,c){for(c=this.length,b=(c+~~b)%c;b<c&&(!(b in this)||this[b]!==a);b++);return b^c?b:-1;});

var Libraries = (function(libPath) {
  return {
    include: function(path) {
      if (!path.match(/\.jsx$/i)) {
        path = path + ".jsx";
      }
      return $.evalFile(libPath + path);
    }
  };
})($.fileName.split("/").splice(0,$.fileName.split("/").indexOf("adobe_scripts") + 1).join("/") + "/lib/");

Libraries.include("HelloWorld.jsx");
helloWorld();

【问题讨论】:

  • 我怀疑$.evalFile() 是异步的?这是 Adob​​es ExtendScript 而不是 javascript?

标签: javascript adobe-illustrator


【解决方案1】:

自从我做这件事以来已经有很多个月了...... 库不是采用 libPath 的函数吗,所以您需要调用

Libraries('c:\whereever').include('HellowWorld.jsx');

【讨论】:

    猜你喜欢
    • 2019-08-20
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多