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粘贴并执行到控制台中?是的,或者实现您自己的助手函数来完成您需要的工作@詹森·乔恩