Javascript 使jQuery库在Facebook.com域中可用

Javascript 使jQuery库在Facebook.com域中可用,javascript,jquery,security,dom,inject,Javascript,Jquery,Security,Dom,Inject,好的。我只是想在Facebook.comDOM元素中使用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); setTim

好的。我只是想在
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
上也会出现以下错误

拒绝加载脚本 “”因为它违反了 遵循内容安全策略指令:“脚本src” *.facebook.com*.fbcdn.net*.facebook.net*.google-analytics.com*.virtualearth.net*.google.com 127.0.0.1:*.spotilocal.com:*“不安全内联”“不安全评估”*.akamaihd.net*.atlassolutions.com 斑点:铬-extension://lifbcibllhkdhoafpjfnlhfpfgnpldfl“

有人遇到过这个问题吗?请分享。提前谢谢


注意:我可以通过将整个代码粘贴并执行到控制台中来利用
jQuery
功能,但我需要知道是什么导致了此问题以及任何替代解决方案(如果有)。

您面临的问题是内容安全策略头。这只允许使用HTTP头中为页面本身提供的白名单站点中的脚本。你可以阅读更多关于这是如何工作的

这项政策是无法绕过的:Facebook使用它来防止人们被说服(参见“社会工程”)执行任意Javascript代码,让其他人访问他们的帐户


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

只需复制并将其粘贴到facebook控制台。

jQuery
$jq
&
$
已经从facebook中定义了……那么为什么需要附加另一个库?@Jai:这些名称的对象存在,并不一定意味着jQuery是嵌入式的。他们可以自己创建这些对象,试图阻止人们在他们的站点上使用jQuery。(如果浏览器可能还不支持CSP,作为保护人们免受lonesomeday在回答中所说影响的额外措施。)@Jai我的意思是,我不能使用
jQuery
$
别名,因为Facebook JS代码中已经声明了
$
jQuery
和我定义的varibale
$jq
即使在执行该代码段后也不起作用。谢谢。本机JavaScript代码要长得多,这就是为什么我选择使用jQuery来处理。因此,唯一的解决方案是将
jQuery
source粘贴并执行到控制台中?是的,或者实现您自己的助手函数来完成您需要的工作@詹森·乔恩