在Facebook.com域中提供jQuery库

时间:2015-11-20 11:38:09

标签: javascript jquery security dom inject

好的。我只想尝试在Facebook.com DOM元素中使用jQuery库。实际上,Facebook没有使用jQuery。因此,我尝试在JS段下方注入以使jQuery可用于该页面。

var jq = document.createElement('script');
jq.src = "//code.jquery.com/jquery-latest.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);

setTimeout(function () {
       $jq = jQuery.noConflict();
    }, 5000);

但是,我无法使用任何&jQuery'任何浏览器的功能。 $已经从facebook&我收到jQuery$jq等变量的错误。上述代码适用于包括Google.com在内的其他网站。

在Chrome中,它在facebook.com上也会出现以下错误。

  

拒绝加载脚本   ' https://code.jquery.com/jquery-latest.min.js'因为它违反了   遵循内容安全策略指令:" script-src   * .facebook.com * .fbcdn.net * .facebook.net * .google-analytics.com * .virtualearth.net * .google.com 127.0.0.1:* * .spotilocal.com:*' unsafe-直列' '不安全-EVAL' * .akamaihd.net * .atlassolutions.com   blob:chrome-extension:// lifbcibllhkdhoafpjfnlhfpfgnpldfl"。

有人遇到过这个问题吗?请分享。在此先感谢。

注意:我可以粘贴jQuery功能。将整个代码执行到控制台但我需要知道导致此问题的原因&任何替代解决方案(如果有的话)。

2 个答案:

答案 0 :(得分:5)

您面临的问题是内容安全策略标头。这允许仅从页面本身的HTTP标头中提供的白名单站点使用脚本。您可以在HTML5Rocks上详细了解其工作原理。

此策略无法解决:Facebook使用它来阻止人们被说服(请参阅“社交工程”)执行任意Javascript代码,以便其他人访问其帐户。

最好的解决方案不是使用jQuery库,而是使用本机Javascript来进行操作。

答案 1 :(得分:0)

只需复制content of the library并将其粘贴到Facebook控制台中即可。