如何绕过知乎对 Bookmarklet 跨域添加的 lt;script src 跨域>的限制

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
javascript:(function(d){var n=d.getElementsByTagName("head")[0].getElementsByTagName("script").var s=d.createElement("script");d.getElementsByTagName("head")[0].appendChild(s);d.getElementsByTagName("script")[n].src="/blog/js/func.js";})(document)
这样也不行
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
可以用 XHR 跨域获取 JS 内容之后填充到 &script/& 标签内实现,此方法需要你的 JS 文件所在主机先开启 CORS(跨域资源共享,允许白名单中的源页面通过Ajax方式获取本站资源),然后就可以用这段代码跨域注入你的JS了:
javascript:(function(d){var s=d.createElement("script");d.getElementsByTagName("head")[0].appendChild(s);var xhr = new XMLHttpRequest(); xhr.open('GET', '/blog/js/func.js', true);xhr.onload = function(){s.innerHTML = xhr.responseText};xhr.send();})(document)
CORS 的设置方法是在服务器端在JS文件的响应头中添加:
Access-Control-Allow-Origin:
在你配置好 CORS 之前,上述代码目前还无法生效。测试的话可以用下面这段(html5rocks的所有资源都是允许跨域的):
javascript:(function(d){var s=d.createElement("script");d.getElementsByTagName("head")[0].appendChild(s);var xhr = new XMLHttpRequest(); xhr.open('GET', '/static/js/modernizr.custom.82437.js', true);xhr.onload = function(){s.innerHTML = xhr.responseText};xhr.send();})(document)
以上代码从
中获取 Modernizr 代码并注入页面。
执行之前 Modernizr 版本为 2.6.2,执行之后是 2.6.1 了(哎哟SF对图片压缩得真凶残):
同步到新浪微博
分享到微博?
你好!看起来你挺喜欢这个内容,但是你还没有注册帐号。 当你创建了帐号,我们能准确地追踪你关注的问题,在有新答案或内容的时候收到网页和邮件通知。还能直接向作者咨询更多细节。如果上面的内容有帮助,记得点赞 (????)? 表示感谢。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App| 时间排序
感觉好恶心。。知乎前端没发现这个问题吗?我还是通过debug找到这个错再找到这里的,怀疑其他用户面对一个只能看不能点的知乎时对知乎的技术团队怎么看。。
感觉好恶心。。知乎前端没发现这个问题吗?我还是通过debug找到这个错再找到这里的,怀疑其他用户面对一个只能看不能点的知乎时对知乎的技术团队怎么看。。
知乎添加了 Content-Security-Policy ,bookmarklet 读不到。
知乎添加了 Content-Security-Policy ,bookmarklet 读不到。
火狐可以试试这个&br&&br&&br&about:config?filter=security.mixed_content.block_active_content&br&设置为false
火狐可以试试这个 about:config?filter=security.mixed_content.block_active_content 设置为false
按内容或者用途或者常用有用频率建几个文件夹就好了,怎么分类不重要,重要的是分好类了要看!买了多少书不重要,重要的是看!
按内容或者用途或者常用有用频率建几个文件夹就好了,怎么分类不重要,重要的是分好类了要看!买了多少书不重要,重要的是看!
猪八戒网欢迎你。&br&什么你非要在知乎找?&br&好吧,一小时100,童叟无欺。
猪八戒网欢迎你。 什么你非要在知乎找? 好吧,一小时100,童叟无欺。
我会告诉你们最简单的方法是要求站方将你们的域加到白名单里面去吗?
我会告诉你们最简单的方法是要求站方将你们的域加到白名单里面去吗?
专题:&a href=&///?target=http%3A//126.am/pErQr4& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&126.am/pErQr4&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&
用replace应该也可以, $'表示匹配子串右侧的文本。&br&另外ECMAScript没标准化substr,所以还是用substring比较好,slice也可以
用replace应该也可以, $'表示匹配子串右侧的文本。 另外ECMAScript没标准化substr,所以还是用substring比较好,slice也可以
早都可以同步书签了,新加入的功能是同步标签页
早都可以同步书签了,新加入的功能是同步标签页
点点现在不仅有bookmarklet,而且有Chrome扩展工具,让发布内容更方便 &br&&a href=&///?target=http%3A///share/intro& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/share/intr&/span&&span class=&invisible&&o&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
点点现在不仅有bookmarklet,而且有Chrome扩展工具,让发布内容更方便
javascript:Qr=prompt('paste%20url%20here','');if(Qr)window.open('&a href=&///?target=http%3A///text%3Fu%3D& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&/text?&/span&&span class=&invisible&&u=&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&'+escape(Qr)) &br&&br&建议去 w3school 学下 Javascript,有中文版的。
javascript:Qr=prompt('paste%20url%20here','');if(Qr)window.open(''+escape(Qr)) 建议去 w3school 学下 Javascript,有中文版的。
已有帐号?
无法登录?
社交帐号登录你正在使用的浏览器版本过低,将不能正常浏览和使用知乎。

我要回帖

更多关于 script标签跨域 的文章

 

随机推荐