You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:如何让新建的dialog窗口匹配鼠标位置或指定位置

解决Dialog窗口指定位置/跟随鼠标的问题

你当前的代码问题在于Window构造函数的参数顺序错误——你把窗口的位置尺寸数组放在了「窗口标题」的参数位置,导致这个设置不生效。

正确指定窗口位置的写法

ExtendScript中Window的构造函数签名是:Window(type, title, bounds, properties),其中bounds是可选的位置尺寸参数,格式为[left, top, right, bottom](左、上、右、下四个坐标)。

如果不需要窗口标题,可以传空字符串作为第二个参数,再传入位置数组:

// 创建一个左上角在(100,495)、宽200高45的对话框
var dlg = new Window("dialog", "", [100, 495, 300, 540]);
dlg.show(); // 必须调用show()才能显示窗口

让窗口跟随鼠标位置

如果要让窗口显示在鼠标当前位置,可以先通过Window.getMouseLocation()获取鼠标坐标,再计算窗口的bounds:

var mousePos = Window.getMouseLocation(); // 获取鼠标当前坐标 [x, y]
var dlgWidth = 200;
var dlgHeight = 45;

// 让窗口左上角对齐鼠标位置
var dlg = new Window("dialog", "", [
    mousePos[0], 
    mousePos[1], 
    mousePos[0] + dlgWidth, 
    mousePos[1] + dlgHeight
]);
dlg.show();

额外提示

  • 部分Adobe应用的ExtendScript环境中,窗口位置会被系统或应用的窗口管理规则限制(比如不能超出屏幕可视范围),如果需要更严谨的处理,可以添加坐标边界检查。
  • 如果你后续需要调整窗口位置,也可以在创建窗口后单独设置bounds属性:
    var dlg = new Window("dialog");
    dlg.bounds = [100, 495, 300, 540];
    dlg.show();
    

内容的提问来源于stack exchange,提问作者Leon Pham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:45:32