抱歉,无法在当前网页上执行JS脚本
What command or commands
map yY runKey keys="yankmdlink+tip1" # 复制标题为markdown格式
map <v-yankmdlink> openUrl url="javascript:navigator.clipboard.writeText(\"[\"+document.title+\"](\"+window.location.href+\")\");"
map <v-tip1> showTip text="已复制url为markdown格式标题"
问题描述
在很多页面上述命令都可以正常执行
在google github 页面会右下角报错"抱歉,无法在当前网页上执行JS脚本"
Browser and OS
Google Chrome | 127.0.6533.100 (正式版本) (64 位) (cohort: Stable Installs & Version Pins) 修订版本 | 191cc1af405dffccb2a183efdcf0a370625f9b92-refs/branch-heads/6533@{#1911} 操作系统 | Windows 11 Version 23H2 (Build 22631.3958) JavaScript | V8 12.7.224.18 用户代理 | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Vimium C version 版本 2.11.3
这个是 chrome 限制了,凡是设置了 CSP 的网站都可以阻止 vimium c 执行自定义脚本,几乎绕不过去。
不过单就你这个需求,可以用现成命令:
map yY copyWindowInfo type="tab" format="[${title}](${url})"
就是没有转义机制,不如自定义 js 来得完善
好的,多谢解答!
等我有空了想想办法,大概这两周内发下一版来尝试解决。思路有了但是代价挺大的。
我也遇到了这个问题,可以给script加上nonce属性可以绕过一些网站(比如Google),改造成本比较低
这样可以获取网页中脚本的nonce
document.querySelector("script").nonce
但对于特别严格的网站还是不行(比如GitHub)
@ttttmr 抱歉我不懂 nonce,只是看名字的话 nonce 是每个 <script> 都不一样的吧?那我怎么算它呢?算出来的好像还得放进 http header 里?
至于统一的办法,只能说思路有了,但是我最近几个月太忙了,没时间搞 vimium c……