Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript InDesign脚本中循环遍历所有线程文本帧?_Javascript_Scripting_Automation_Adobe Indesign - Fatal编程技术网

在JavaScript InDesign脚本中循环遍历所有线程文本帧?

在JavaScript InDesign脚本中循环遍历所有线程文本帧?,javascript,scripting,automation,adobe-indesign,Javascript,Scripting,Automation,Adobe Indesign,我正在尝试创建一个InDesign脚本,它的功能与SplitStory.jsx完全相同,只是它不需要首先选择一个线程文本框架,而是在整个文档中循环所有线程化/链接的内容 这是我到目前为止所拥有的,但它似乎没有起到任何作用。我对脚本编写相当陌生 main(); function main(){ //Make certain that user interaction (display of dialogs, etc.) is turned on. app.scriptPrefere

我正在尝试创建一个InDesign脚本,它的功能与SplitStory.jsx完全相同,只是它不需要首先选择一个线程文本框架,而是在整个文档中循环所有线程化/链接的内容

这是我到目前为止所拥有的,但它似乎没有起到任何作用。我对脚本编写相当陌生

main();
function main(){
    //Make certain that user interaction (display of dialogs, etc.) is turned on.
    app.scriptPreferences.userInteractionLevel = UserInteractionLevels.interactWithAll;
    if(app.documents.length != 0){
        var myDoc = app.activeDocument;
        var myStories = 0;
        for (var i = 0; myDoc.stories.length > i; i++)
            myStories = myDoc.stories[i];
            mySplitStory(myStories);
            myRemoveFrames(myStories);
    }
    else{
        alert("Please open a document and try again.");
    }
}
function mySplitStory(myStory){
    var myTextFrame;
    //Duplicate each text frame in the story.
    for(var myCounter = myStory.textContainers.length-1; myCounter >= 0; myCounter --){
        myTextFrame = myStory.textContainers[myCounter];
        myTextFrame.duplicate();
    }
}
function myRemoveFrames(myStory){
    //Remove each text frame in the story. Iterate backwards to avoid invalid references.
    for(var myCounter = myStory.textContainers.length-1; myCounter >= 0; myCounter --){
        myStory.textContainers[myCounter].remove();
    }
}
我觉得我需要在mySplitStory(myStories)中添加一些东西类似于
mySplitStory(myStories.currentStory)
,但我在网上(或Adobe的脚本文档中)找不到关于这方面的任何信息,但可能我找的地方不对


任何帮助都将不胜感激

这是一个非常简单的脚本,它允许您循环浏览文档中的所有文本框,然后对线程文本框执行任何需要的操作。基本上,如果任何给定的textFrame有一个
textFrame
对象用于
nextTextFrame
previousTextFrame
,您就知道它是线程化的

test();
function test(){

    var myDoc = app.open('c:/123.indd');

    //get all textframes:
    var allTextFrames = myDoc.textFrames;

    for(var i=0;i<allTextFrames.length;i++){
        var tf = allTextFrames[i];

        if(tf.nextTextFrame != null || tf.previousTextFrame != null){

           //text frame is threaded, do work:
        }
    }
}
test();
功能测试(){
var myDoc=app.open('c:/123.indd');
//获取所有文本框:
var allTextFrames=myDoc.textFrames;
对于(var i=0;i