Skip to main content
dublove
Legend
Sep 18, 2025 5:10 PM UTC
Answered

This is confusing again: "alert(sel);" is correct, so why is the second 'alert' wrong?

When I select an image within the text, I want to obtain the width of the textFrame.
The result throws an error.

alert(sel); is right.

 

alert(sel.geometricBounds[3]); Error popup: Object is invalid

Does textFrame not have a geometricBounds property?

 

 

item = app.activeDocument.selection[0];
var doc = app.activeDocument;
var sel = item.parent.parent.textFrames[0]
alert(sel);

alert(sel.geometricBounds[3]);

 

TᴀW
TᴀWCorrect answer
Legend
Sep 18, 2025 6:28 PM UTC

Instead of app.activeDocument you can just use the shortcut property document.

Next, you've got an anchored object selected. Its parent is a character. And its parent is a story.

You access all the text frames that are part of a story with the property textContainers which returns an array. (story.textFrames will return any text frames that are anchored to the first insertion point of that story, basically useless.) But this won't really help you, because you may not know which frame the anchored object is in.

Instead, to get the textFrame that a character is in, go directly, using the parentTextFrames property: document.selection[0].parent.parentTextFrames[0].geometricBounds[3]

 

 

id-extras.com | InDesign tools & scripts for typesetters, form designers, and translators

2 replies

TᴀW
TᴀWCorrect answer
Legend
Sep 18, 2025 6:28 PM UTC

Instead of app.activeDocument you can just use the shortcut property document.

Next, you've got an anchored object selected. Its parent is a character. And its parent is a story.

You access all the text frames that are part of a story with the property textContainers which returns an array. (story.textFrames will return any text frames that are anchored to the first insertion point of that story, basically useless.) But this won't really help you, because you may not know which frame the anchored object is in.

Instead, to get the textFrame that a character is in, go directly, using the parentTextFrames property: document.selection[0].parent.parentTextFrames[0].geometricBounds[3]

 

 

Translate
id-extras.com | InDesign tools & scripts for typesetters, form designers, and translators
dublove
dubloveAuthor
Legend
Sep 19, 2025 3:22 AM UTC

This problem again.
Great.
Thanks.

Translate