j通知不在Chrome上使用facebook

sky*_*ail 5 jquery bookmarklet

jQuerify是一个小书签,用于为当前显示的网页添加jquery支持.看看这个页面:http://www.learningjquery.com/2009/04/better-stronger-safer-jquerify-bookmarklet/

这个演示让我知道是否已经下载了jquery,如果没有,则加载它,然后显示活动版本.我的问题是:在使用谷歌浏览器浏览时,某些页面上没有显示任何内容,例如facebook,google(不是缓存页面,而是页面结果)使用IE时,它正在使用这些页面.

我试图在Chrome上断开用户谷歌会话,但我仍然有问题.我以为它是由https网址引起的.但是在确认"显示所有内容"之后,它在IE中显示正常.

可能是Chrome中的配置错误?有没有针对jQuerify的修复,还是应该放弃并找到另一个加载jquery和远程脚本的解决方案?

谢谢你的建议.

web*_*org 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 .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的解决方案,您可以使用以下方法执行此操作:

  • 由于您可以在上面的详细信息中看到,因此支持127.0.0.1:*.只需在您的系统上运行一个简单的Web主机(例如:Apache Web服务器).将jquery javascript文件复制到系统上的Apache链接目录中.现在可以使用类似的路径访问此文件http://127.0.0.1/jquery.js(注意:请勿http://localhost/在此处使用).在jQuerify bookmarklet中,将jQuery文件的路径更改http://code.jquery.com/jquery.min.jshttp://localhost/jquery.js.现在bookmarklet工作正常.

       要么

  • 将整个jQuery代码加载到bookmarklet中,这样它就不会加载外部脚本文件.不建议使用,因为如果您希望通过jQuery文件使用它来进行调试,这不会像第一种方法那样有用.