If allTextFrames is a collection of text frames from a layer, why does the line below give me a null error?
currentPage= allTextFrames[i].parentPage;
I’m currently working around it by doing this line below so I can export PDFs via page range with the value in currentPage.
currentPage= allTextFrames[i].parent.index+1;
var allTextFrames = new Array();
allTextFrames = myLayer.textFrames;
for( i=0;i<allTextFrames.length;i++)
{
currentPage= allTextFrames[i].parent.index+1;
alert(currentPage);
}
The alert shows me nulls.
I get a a "type error null is not an object" but I now realize that is later in the script.
I assume you mean .parentPage in the assignment line of your script.
In which case the alert shows me "[Page]" which is as it should be.
What version of InDesign?
Also, this construction:
var allTextFrames = new Array();
allTextFrames = myLayer.textFrames;
is both superfluous and unwise. You declare allTextFrames, initially assign it the value of the Array constructor, as if it were an array, and then you assign it to a collection.
A collection is not an array. So now you use the same variable to represent two different types. This is acceptable in JavaScript, but bad style, because it promotes confusion about what type things are.
In this case, simply
var allTextFrames = myLayer.textFrames;
would be sufficient.
What's the minimal document necessary to make your script fail?
Also, it would be nice to see an example that stands on its own.
This one depends on myLayer, so it's annoying for others to test.
North America
Europe, Middle East and Africa
Asia Pacific