48

我第一次做一些 Photoshop 脚本,如果有一个类似 console.log 的函数来在ExtendScript Toolkit App的 Javascript 控制台中输出数组和对象值肯定会很棒。

有没有等价的功能?

4

4 回答 4

69

$.writeln()就是你要找的。有关详细信息,请参阅JavaScript 工具指南 (PDF)

于 2012-03-08T18:15:26.443 回答
4

我正在使用 ExtendScript Toolkit 4.0 版,并且使用_print('foo')似乎可以解决问题。

于 2015-04-07T19:00:54.083 回答
1
write("any message");

在 XTools for Photoshop 中有效。我发现 Photoshop 调试器在 Mac OSX 上的 CS6 中一直崩溃。

您可以在此处找到有关 XTools 的更多信息:http: //ps-scripts.sourceforge.net/xtools.html

太棒了!

于 2013-10-13T22:34:17.793 回答
0

改为记录到文件

我知道这很旧,但我最近需要记录 InDesign 脚本的一些值,我想分享我的“解决方案”。

我的第一个问题是我什至没有弄清楚输出产生的$.writeln()去向。所以我求助于一个粗略的函数,将日志记录到文档目录中的一个文件中。也许它会对某人有用。我猜这可能也适用于 Photoshop 或其他 ExtendScript 环境。

我了解到 ExtendScript 不支持JSON方法,所以我使用了 polyfill。只需将文件(在我的情况下json2.js)与您的.jsx.

#include "json2.js"; // include polyfill file

function log (input) {
    if(!debug) return;
    if(!JSON || !JSON.stringify) return;

    var now = new Date();
    var output = JSON.stringify(input);

    $.writeln(now.toTimeString() + ": " + output);

    var logFile = File(app.activeDocument.filePath + "/log.txt");
    logFile.open("a");
    logFile.writeln(now.toTimeString() + ": " + output);
    logFile.close();
}

用法

var debug = true;

log("abc 123");
log([1, 3, 4343, "ddddd", null, false]);

使用该debug变量可以快速启用或禁用输出。

于 2022-02-09T15:03:58.333 回答