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

如何用AutoHotkey绑定快捷键执行刷新样式表的Bookmarklet

解决方法:用AutoHotkey执行刷新样式表的Bookmarklet

你的问题核心有两个:一是原Bookmarklet代码里的HTML实体编码会导致JS执行报错,二是浏览器的安全机制可能拦截通过剪贴板粘贴的javascript:前缀代码。下面是修正后的AutoHotkey脚本,以及问题原因的说明:

正确的AHK脚本

^q::
    ; 激活浏览器地址栏
    SendInput, ^l
    ; 短暂等待确保地址栏获得焦点(避免因浏览器响应慢导致输入失效)
    Sleep, 100
    ; 发送修正后的Bookmarklet代码(直接输入而非剪贴板,避开浏览器拦截)
    SendInput, javascript:(function(){var h,a,f;a=document.getElementsByTagName('link');for(h=0;h<a.length;h++){f=a[h];if(f.rel.toLowerCase().match(/stylesheet/)&&f.href){var g=f.href.replace(/(&|%5C?)forceReload=\d+/,'');f.href=g+(g.match(/\?/)?'&':'?')+'forceReload='+(new Date().valueOf())}}})()
    ; 执行代码
    SendInput, {Enter}
Return

为什么之前的尝试失败?

  1. HTML实体编码问题:你用的Bookmarklet是网页上显示的版本,里面的&lt;(对应<)和&amp;(对应&)是HTML实体编码,直接放到JS里会被当作无效字符,导致脚本报错无法运行。我已经把这些实体替换成了实际的JS语法字符。
  2. 浏览器安全拦截:很多现代浏览器会自动移除通过剪贴板粘贴的javascript:前缀(出于防恶意脚本的安全限制),这就导致你的代码被当作普通搜索关键词,而不是可执行的JS代码。直接用SendInput输入代码可以避开这个问题。

额外注意事项

  • 确保执行快捷键Ctrl+Q时,浏览器窗口处于活动状态,否则脚本会把内容发送到当前激活的其他窗口。
  • 如果Chrome等浏览器仍然拦截,你可以尝试在地址栏手动输入一次javascript:开头的代码,浏览器会弹出安全提示,选择允许后,后续脚本输入就会正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 07:53:00