Skip to main content
Participant
July 4, 2024
Answered

JavaScript, why methods .selectEllipse(), .selectColumn(), .selectPolygon() and etc don't work?

  • July 4, 2024
  • 1 reply
  • 648 views

This question is a duplicate of my question on stackoverflow, https://stackoverflow.com/questions/78704383/photoshop-javascript-why-docref-selection-selectellipse-selectcolumn

I automate Photoshop using JavaScript, so here is my code:

var originalRulerUnits = app.preferences.rulerUnits
originalRulerUnits = Units.PIXELS

displayDialogs = DialogModes.NO

var fileRef = new File( "C:\\Users\\...\\Desktop\\...\\...\\test.png" );
app.open( fileRef );
var docRef = app.activeDocument;

So this code works fine, but next when I'm trying

docRef.selection.selectEllipse(
{top: 50, left: 70, bottom: 140, right: 100},
SelectionType.EXTEND
);

or 

docRef.selection.selectColumn(90);

with or without await keyword, or

docRef.selection.selectEllipse({top: 0, left: 0, bottom: 100, right: 100});

and etc., nothing happens?

I've found these methods in Adobe documentation:
https://developer.adobe.com/photoshop/uxp/2022/ps_reference/classes/selection/#selectall but they aren't present in photoshop-javascript-ref-2020.pdf , neither in photoshop-scripting-guide-2020.pdf ( https://github.com/Adobe-CEP/CEP-Resources/tree/master/Documentation/Product%20specific%20Documentation/Photoshop%20Scripting )

I'm using Photoshop 25.0.0, but those Instruments (-Elliptical Marquee Tool; -Single Column Marquee Tool; -Polygonal Lasso Tool; -Rectangular Marquee Tool) were in Photoshop for many years, and for example methods like .select()

var shapeRef = [ [x2, y2], [width, y2], [width, height], [x2, height] ];
docRef.selection.select(shapeRef, selectionType.EXTEND);

or 

.selectAll()

method works fine.

So what am I doing wrong?

This topic has been closed for replies.
Correct answer pixxxelschubser

Yes, exactly. 

 

Because, as you said yourself, these methods can be found in the UXP reference - and not in the Javascript reference.

1 reply

Stephen Marsh
Community Expert
Community Expert
July 4, 2024

Legacy ExtendScript/Action Manager code (.jsx) isn't compatible with the new UXP/BatchPlay code (.psjs). It's one or the other.

Participant
July 4, 2024

So, do I understand correctly that these new methods (selectColumn, selectEllipse and so on) will only work for UXP/BatchPlay code (.psjs)? And not in .jsx?

pixxxelschubser
Community Expert
pixxxelschubserCommunity ExpertCorrect answer
Community Expert
July 4, 2024

Yes, exactly. 

 

Because, as you said yourself, these methods can be found in the UXP reference - and not in the Javascript reference.