jQuerify是一个小书签,用于为当前显示的网页添加jquery支持。 请查看此页面:http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet/
此演示让我知道是否已经下载了jquery,如果没有,则加载它,然后显示活动版本。 我的问题是:在使用谷歌浏览器浏览时,某些页面上没有显示任何内容,例如facebook,google(不是缓存页面,而是页面结果) 使用IE时,它正在使用这些页面。
我尝试在Chrome上断开用户google会话,但我仍然遇到问题。 我以为它是由https网址引起的。但在确认“显示所有内容”后,它在IE中显示正常。
Chrome可能存在配置错误? 有没有针对jQuerify的修复,还是应该放弃并找到另一个加载jquery和远程脚本的解决方案?
感谢您的建议。
答案 0 :(得分:9)
在Google Chrome中,您可以在浏览器控制台中看到错误消息。
它说: 拒绝加载脚本'http://code.jquery.com/jquery.min.js',因为它违反了以下内容安全策略指令:“script-src https:// .facebook.com http:/ /.facebook.com https:// .fbcdn.net http:// .fbcdn.net * .facebook.net * .google-analytics.com * .virtualearth.net < em> .google.com 127.0.0.1: * .spotilocal.com:* chrome-extension:// lifbcibllhkdhoafpjfnlhfpfgnpldfl'unsafe-inline''unsafe-eval'https:// .akamaihd.net http :// .akamaihd.net”
这是因为Facebook实施了一个安全功能,该功能是使用HTTP标头“X-WebKit-CSP”实现的。
这就是为什么Facebook上的当前实施会影响在基于webkit的浏览器中加载外部脚本(Chrome和Safari) jQuerify bookmarklet在Firefox和IE上运行良好。
Chrome解决方案,您可以使用以下方法执行此操作:
http://127.0.0.1/jquery.js
的路径访问此文件(注意:此处不要使用http://localhost/
)。在jQuerify bookmarklet中,将jQuery文件的路径从http://code.jquery.com/jquery.min.js
更改为http://localhost/jquery.js
。现在书签可以正常工作。OR