如何判断设计文档中文本框中的内容是通过java脚本还是action脚本改变的?
Posted
技术标签:
【中文标题】如何判断设计文档中文本框中的内容是通过java脚本还是action脚本改变的?【英文标题】:How to determine whether the content in text frame of in design document changed through java script or action script? 【发布时间】:2017-01-05 02:17:49 【问题描述】:我需要通过动作脚本找出文本框架中的内容是否已更改。 到目前为止,我正在与我的服务器端数据进行比较以检查 indesign 文档文本框架中的内容,但现在我想检查那里是否有任何默认标志以避免服务器端调用。
【问题讨论】:
您可以使用 InDesign 的跟踪更改功能,也可以保存文本框架客户端内容的校验和,并每次比较校验和以查看它是否已更改。 感谢您的评论@JoshVoigts。它对我有用,我发现如何清除所有更改 com.adobe.indesign.Changes 点击按钮... 【参考方案1】:跟踪更改似乎确实是要走的路。另一种方法可能是使用空闲事件来监控故事的变化。基本上就是 Josh 刚才的建议。
#targetengine "storiesChanges"
main();
function main()
var db = ;
var myIdleTask = app.idleTasks.item("checkStories");
if ( !myIdleTask.isValid )
myIdleTask = app.idleTasks.add(name:"checkStories", sleep:100);
myIdleTask.addEventListener(IdleEvent.ON_IDLE,onIdleEventHandler, false);
function onIdleEventHandler(myIdleEvent)
var doc = app.properties.activeDocument;
if ( !doc )
db =
return;
var sts = doc.stories, st, id;
var n = sts.length;
while ( n-- )
st = sts[n];
id = st.id;
if ( !db[id] )
$.writeln ("Storing "+id );
db[id] = st.contents;
else if ( db[id]!=st.contents )
$.writeln ( "Some changes were made on story "+id+" at "+(new Date()) );
db[id] = st.contents;
else
$.writeln ( "No changes were made for story "+id );
【讨论】:
以上是关于如何判断设计文档中文本框中的内容是通过java脚本还是action脚本改变的?的主要内容,如果未能解决你的问题,请参考以下文章