如何在Google Chrome中修改URL且不触发页面刷新?
解决方案
直接修改Chrome标签页的URL属性本质是主动跳转访问新地址,必然触发页面重载,要实现无刷新修改URL需要调用浏览器原生的history.replaceState API,同时触发WhatsApp Web的路由识别逻辑即可。
修正后的AppleScript代码
tell application "Google Chrome" activate tell window 1 to tell active tab -- 首次运行先加载WhatsApp Web根地址,已登录后后续调用不会重复加载 if URL does not start with "https://web.whatsapp.com" then set URL to "https://web.whatsapp.com" -- 等待页面加载、扫码登录完成,可根据实际情况调整延迟时长 delay 5 end if -- 替换为实际需要的手机号和发送内容,支持从FileMaker直接传入变量 set targetPhone to "55555" set targetMsg to "MESSEGE" set newUrl to "https://web.whatsapp.com/send?phone=" & targetPhone & "&text=" & targetMsg -- 调用JS无刷新修改URL并触发WhatsApp路由响应 execute javascript " history.replaceState(null, '', '" & newUrl & "'); window.dispatchEvent(new PopStateEvent('popstate')); " delay 0.3 -- 此处可补充模拟点击发送按钮的AppleScript/JS逻辑 end tell end tell
注意事项
- 手机号需要补充完整国际区号,例如中国手机号前缀加
86,不要携带+、空格、横杠等多余分隔符 - 发送的中文、特殊符号类消息需要提前做URL编码,避免参数解析错误
- 如果你是从FileMaker中调用这段AppleScript,可以直接把FileMaker内的手机号、消息字段作为变量传入,不需要硬编码参数
- 若WhatsApp Web未响应路由变化,可适当调高延迟时长,或根据你使用的WhatsApp Web版本补充对应路由刷新逻辑
内容的提问来源于stack exchange,提问作者Show1
相关产品推荐
相关产品推荐

