【问题标题】:Running A Bookmarklet With Autohotkey使用 Autohotkey 运行书签
【发布时间】: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


【解决方案1】:

通过做一些研究,这可能是一种解决方法:

  1. 在 Chrome 中添加自定义搜索引擎,方法是右键单击地址栏,然后单击“其他搜索引擎”旁边的添加
  2. 给它命名一个合理的名字并给它一个关键字(在本例中我使用了“refreshcss”)
  3. 将小书签粘贴到 URL 字段并保存。

现在修改AHK脚本如下:

^q::
sendinput ^l
send refreshcss
sendinput {enter}
return

这会将您带到 URL 栏,选择您的书签并运行它:)

【讨论】:

  • 注意,可以将其压缩为一行AHK代码:^q::Send , ^lrefreshcss{enter}
猜你喜欢
  • 2019-05-21
  • 2023-03-26
  • 2021-12-13
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 2011-08-05
  • 1970-01-01
  • 2011-05-18
相关资源
最近更新 更多