如何判断设计文档中文本框中的内容是通过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脚本改变的?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取HTML中用户输入到文本框中的内容?

c#中的文本框里怎么判断输入的内容是啥类型

java如何制作个向网页文本框中自动填写数据

VB如何把文件内容显示在文本框中?

在java开发中怎么把word文档读到页面文本框中

java中怎样提取文本框中的内容输出到文件?