Javascript 使用自动热键运行Bookmarklet
我有一个整洁的小书签,可以刷新您正在查看的任何网页上的样式表,而无需重新加载页面:Javascript 使用自动热键运行Bookmarklet,javascript,browser,autohotkey,bookmarklet,Javascript,Browser,Autohotkey,Bookmarklet,我有一个整洁的小书签,可以刷新您正在查看的任何网页上的样式表,而无需重新加载页面: 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?)forceRe
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())}}})()
如果我不知道如何执行bookmarklet,而不在书签栏中实际单击它,这是没有帮助的。上面的代码选择URL并将javascript粘贴到其末尾,但这不起作用
有人能帮我吗
编辑:这里是另一个尝试,但这只是搜索谷歌的实际字符串,而不是运行它
^q::
Clipboard:="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 ^l
sendinput ^v
sendinput {enter}
return
^q::
剪贴板:=“javascript:(function(){var h,a,f;a=document.getElementsByTagName('link');for(h=0;h通过做一些研究,这很可能是一个解决方法:
右键单击地址栏,然后单击“其他搜索引擎”旁边的“添加”,在Chrome中添加自定义搜索引擎
给它起个合理的名字,并给它一个关键字(在本例中,我使用了“refreshcss”)
将bookmarklet粘贴到URL字段并保存
现在修改AHK脚本,如下所示:
^q::
sendinput ^l
send refreshcss
sendinput {enter}
return
这将带您进入URL栏,选择bookmarklet并运行它:)你不需要在最后粘贴它,而需要将它粘贴到页面中。我不确定添加?javascript:
是否有效。这并不能回答你的问题,但你可以使用一个浏览器扩展,将javascript注入页面,使用修改后的JS代码片段为按键组合添加一个侦听器CTRL+Q
@VLAZ,如果我删除e?
从一开始就删除sendinput{Right}
行,它只是在谷歌上搜索字符串。是的,更现代的浏览器版本倾向于这样做,以防止你只是将随机JS粘贴到URL上。这是为了保护用户(据推测).Bookmarklets绕过该限制,因为用户必须手动添加它们,在某些情况下,只需跳过环即可获得它们。请注意,您可以将其压缩为一行AHK代码:^q::Send,^lrefreshcss{enter}
。
^q::
sendinput ^l
send refreshcss
sendinput {enter}
return