作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的脚本中,我的设置与此类似:
// "element" is an xml element in the structure that contains text
// "frame" is one page item
element.placeXML( frame );
这效果非常好。它将从元素中获取文本并将其放入页面上的框架中。但是,我需要在将文本粘贴到框架中后对文本进行一些处理,并且由于原因太长而无法解释这个问题,因此不可以选择使用 mapTagsToStyles 。我想,这应该是一个简单的任务,所以我尝试了以下代码:
element.placeXML( frame );
// after the xml text gets placed, the frame becomes a text frame...
if ( frame instanceof TextFrame ){
// some code here
}
但是,if 语句返回 false,除非在脚本运行之前该框架已经是 TextFrame,如果 XML 元素是图像,则这也是不可取的。由于图像不支持“parentStory”等属性,因此会导致错误。
看起来整个脚本完成后只是一个文本框架。换句话说,XML 不会在调用函数时立即放置。它似乎是异步运行的,但我不知道在这种情况下如何使用“onload”事件监听器。
// say "frame" is an empty rectangle frame...
// inserting text will change it into a text frame.
// This function, although written here, does not execute here.
element.placeXML( frame );
if ( frame instanceof TextFrame ){
// instanceof will return [object Rectangle],
// because placeXML has not inserted any text yet.
}
// end of script. ---------
// the placeXML() function executes here.
这个函数有更正确的使用方法吗?这是预期的效果,还是扩展脚本中的故障?
最佳答案
尝试 (frame.getElements()[0] instanceof TextFrame)
关于javascript - InDesign : How to properly use placeXML(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30768577/
我是一名优秀的程序员,十分优秀!