Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用自动热键运行Bookmarklet_Javascript_Browser_Autohotkey_Bookmarklet - Fatal编程技术网

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