5

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

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

我试图断开 chrome 上的用户 google 会话,但我仍然遇到问题。我认为这是由 https url 引起的。但在我确认“显示所有内容”后,它在 IE 中显示正常。

Chrome中可能存在错误配置吗?jQuerify 是否有任何修复或我应该放弃并找到另一个解决方案来加载 jquery 和远程脚本?

谢谢你的建议。

4

1 回答 1

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 书签在 Firefox 和 IE 上运行良好。

Chrome 的解决方案,您可以使用以下方法:

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

       或者

  • 将整个 jQuery 代码加载到小书签中,这样它就不会加载外部脚本文件。不推荐,因为如果您还希望使用它通过 jQuery 文件进行调试,这将不如第一种方法有用。
于 2013-01-01T09:10:19.220 回答