Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当Facebook、Google+;或类似服务被用户阻止_Javascript_Facebook_Google Plus - Fatal编程技术网

Javascript 当Facebook、Google+;或类似服务被用户阻止

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 ($(".

如果有人使用Ghostify、my Google+、Facebook等浏览器插件访问我的网站,按钮就会消失。所以我想我应该写一些Javascript来检查这些是否是基于选择器内容加载的,或者选择器是否存在,这取决于单个元素的HTML。。。然后附加一些文本而不是按钮

    $(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按钮。令人困惑