【发布时间】:2019-10-16 03:42:24
【问题描述】:
我有一个简洁的小书签,可以刷新您正在查看的任何网页上的样式表,而无需重新加载页面:
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())}}})()
当我点击CTRL + Q 时,我正在尝试编写一个 AHK 脚本来运行书签。这是我到目前为止所得到的:
^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 {Right}
sendinput ^v
sendinput {enter}
return
如果我不知道如何在书签栏中实际单击它来执行小书签,这无济于事。上面的代码选择 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
【问题讨论】:
-
您不需要将其粘贴在末尾,而是而不是。我不确定添加
?javascript:是否有效。 -
这不能回答您的问题,但您可以使用浏览器扩展程序将 JavaScript 注入页面,使用 JS sn-p 的修改版本为组合键
CTRL + Q添加侦听器. -
@VLAZ 如果我从开头删除
?并删除sendinput {Right}行,它只会在 google 搜索字符串 -
是的,更现代的浏览器版本倾向于这样做,以防止您只是将随机 JS 粘贴到 URL。这是为了保护用户(据说)。书签绕过了这个限制,因为用户必须手动添加它们,并且在某些情况下跳过箍只是为了拥有它们。
标签: javascript browser autohotkey bookmarklet