Javascript 为什么覆盖后项目位置混乱?

Javascript 为什么覆盖后项目位置混乱?,javascript,position,adobe-indesign,extendscript,Javascript,Position,Adobe Indesign,Extendscript,情况: 我的脚本创建了一个以母版页为模板的周计划 脚本中发生的是: 创建页面 应用母版页 覆盖每个项目 更改每个项目的内容 对整个日期数组长度执行此操作 问题是: 重写后masterPageItems的位置会变得混乱。 我做了两个截图作为演示 现在真正奇怪的是,它在自定义大小的文档上被弄乱了,但在A4格式上却没有弄乱 我已经尝试在覆盖每个项目后恢复其几何边界,但这似乎也不起作用 你知道是什么导致了这种行为吗 母版页: 覆盖后出现混乱: 编辑: 为了证明恢复geometricBounds不起作用,

情况:

我的脚本创建了一个以母版页为模板的周计划

脚本中发生的是:

创建页面 应用母版页 覆盖每个项目 更改每个项目的内容 对整个日期数组长度执行此操作 问题是:

重写后masterPageItems的位置会变得混乱。 我做了两个截图作为演示

现在真正奇怪的是,它在自定义大小的文档上被弄乱了,但在A4格式上却没有弄乱

我已经尝试在覆盖每个项目后恢复其几何边界,但这似乎也不起作用

你知道是什么导致了这种行为吗

母版页:

覆盖后出现混乱:

编辑: 为了证明恢复geometricBounds不起作用,我做了以下工作:

function OverrideMasterItems(currPage) {  
  var allItems = currPage.masterPageItems;  
  var itemPos;
  for(var i=0;i<allItems.length;i++){  
    try{
        itemPos = allItems[i].geometricBounds;
        allItems[i].override(currPage);
        allItems[i].geometricBounds = itemPos;
        $.writeln("Original itemPos: " + itemPos);
        $.writeln("New itemPos: " + allItems[i].geometricBounds);
        if(itemPos == allItems[i].geometricBounds) {
            $.writeln("same position");
        }
    }  
    catch(e){}  
  }  
} 
正如您所见,我再次分配了项目的原始几何边界,在控制台中,它说它是相同的值-但它看起来像在屏幕截图中。而且它写的位置也不一样——这意味着if语句不是真的…

我解决了它!供日后参考:

这不是一个编程错误,而是一些笨拙的InDesign错误?!这导致了这种奇怪的行为:

我从不同的文档中复制了母版页的元素,这些文档具有不同的维度,我只是调整了文本字段的大小以适应新的格式

这就是导致这种行为的原因——似乎textfields仍然有我从另一个文档获得的一些信息,并且这些信息不可删除/编辑

因为即使删除段落样式等也不会改变奇怪的行为

由于我对InDesign脚本非常陌生,我不知道这是否是你们知道的常见事情,但这让我头疼

编辑1:我没有解决它!有时还是不工作

好吧,它还在发生,我只是不明白为什么。。。当脚本对某个项执行覆盖时,该项将被重新定位到完全错误的位置