Javascript 当Facebook、Google+;或类似服务被用户阻止
如果有人使用Ghostify、my Google+、Facebook等浏览器插件访问我的网站,按钮就会消失。所以我想我应该写一些Javascript来检查这些是否是基于选择器内容加载的,或者选择器是否存在,这取决于单个元素的HTML。。。然后附加一些文本而不是按钮Javascript 当Facebook、Google+;或类似服务被用户阻止,javascript,facebook,google-plus,Javascript,Facebook,Google Plus,如果有人使用Ghostify、my Google+、Facebook等浏览器插件访问我的网站,按钮就会消失。所以我想我应该写一些Javascript来检查这些是否是基于选择器内容加载的,或者选择器是否存在,这取决于单个元素的HTML。。。然后附加一些文本而不是按钮 $(document).ready(function () { /// Google+ : I check if it's div that was left has any content if ($(".
$(document).ready(function () {
/// Google+ : I check if it's div that was left has any content
if ($(".g-plusone").html().length < 1 ) {
$(".g-plusone").append('<p>Google+1 Blocked</p>');
}
/// Facebook I check if the widget selector even exists
if (!$(".fb_iframe_widget").length) {
$(".fb-like").append('<p>Facebook Like button blocked</p>');
}
});
$(文档).ready(函数(){
///Google+:我检查剩下的div是否有任何内容
if($(“.g-plusone”).html().length<1){
$(“.g-plusone”).append(“Google+1被阻止””);
}
///Facebook我检查小部件选择器是否存在
如果(!$(“.fb\u iframe\u小部件”).length){
$(“.fb-like”).append(“Facebook-like按钮被阻止”);
}
});
这似乎是可行的,而且似乎在除Firefox 11+之外的所有浏览器中都是可行的
我无法理解,因为它有时会加载附加的Facebook文本,即使div存在。有时它会正常加载facebook按钮
换句话说,即使firefox中没有阻塞,追加脚本也会触发
有什么想法吗
干杯我猜Firefox上的插件会删除类似于
.g-plusone
和.fb的项目
将G+和FB小部件包装在始终存在的div中。使用与“g-plus”和“fb”完全不同的ID和/或css类,这样过于热心的插件就不会删除您的div。在处理了几个小时后,我突然想起了RTFM方法,并查看了jquery文档
在此之前,我尝试使用.load()而不是.ready()。我想如果所有的页面都是在我的脚本之前加载的,那么它就不可能不工作。但它不起作用
现在在看了这些文档之后,我注意到我正在使用
$(document).load(function ()
但我真正需要的是
$(window).load(function ()
哼!测试广泛,现在似乎一切正常。当按钮被插件阻塞时,我的IF语句会将其拾取并显示一些文本,否则它们会显示良好
这是当前运行良好的代码,我需要稍后整理,如果可能的话进行优化,然后再整理
$(window).load(function () {
var gplus = $("#node_movie_full_group_sharebuttons .g-plusone").html().length;
var fejs = $("#node_movie_full_group_sharebuttons .fb_iframe_widget").length;
var disq = !$("#dsq-content").length;
if (gplus < 1) {
$(".g-plusone").append('<p>Google+1 Blocked</p>');
$(".field-name-sharebuttonsmovie .field-item").css("top", 0);
}
if (fejs < 1) {
$(".fb-like").append('<p>Facebook Like button blocked</p>');
$(".field-name-facemovie .field-item").css({ 'top': '0', 'left': '0' });
}
if (disq) {
$("#disqus_thread").append('<p>Something is blocking the Disqus comments system</p>');
}
});
$(窗口)。加载(函数(){
var gplus=$(“#node_movie_full_group_sharebuttons.g-plusone”).html().length;
var fejs=$(“#node_movie_full_group_sharebuttons.fb_iframe_widget”).length;
var disq=!$(“#dsq内容”)。长度;
如果(gplus<1){
$(“.g-plusone”).append(“Google+1被阻止””);
$(“.field name sharebuttonsmovie.field item”).css(“顶部”,0);
}
if(fejs<1){
$(“.fb-like”).append(“Facebook-like按钮被阻止”);
$(“.field name facemovie.field item”).css({'top':'0','left':'0'});
}
if(disq){
$(“#discus_线程”).append(“有东西阻止了discus评论系统””);
}
});
很好,我将进一步测试该逻辑。Firefox的行为似乎是由于它的缓存方式。至少我这么认为。在第一次加载时,没有阻塞,facebook按钮就在那里。在转到另一个使用相同脚本的页面后,我得到了附加的文本,而不是facebook按钮。令人困惑