报这个错是因为知乎在相应头中设置了Content-Security-Policy字段,参数之外的js文件都会被禁止,所以可以考虑下面几种方法:
1. 把script内容压缩为一行,直接执行而不是采用script标签加载。
缺点:复制起来不太方便,另外如果你要把自己的代码发布给其他人用,用户的代码不好更新。
好处是相比于远程加载更为安全和快速。
2. 通过工具(比如Mason或者代理工具)改变responseHeader中的Content-Security-Policy字段,以charles为例:
tools-rewrite
缺点:只能自己用用。
3. ajax + eval
使用XMLHttpRequest加载js文件,再使用eval执行文件内容。不过这样需要修改你的responseHeader以支持跨域:{'Access-Control-Allow-Origin': '*'}
缺点:需要服务器支持。