社交按钮不会共享当前页面信息

时间:2015-05-06 17:58:33

标签: javascript jquery facebook twitter pinterest

我一直在尝试创建社交按钮,既可以自动捕获当前页面网址,也可以自动捕获页面描述。

我经历过无数的问题&答案(在stackoverflow中找到)并遵循步骤,但我遇到了社交按钮行为的某种问题。

  1. facebook:它弹出一个新窗口并提示我'输入要分享的URL'。新页面的网址为:https://www.facebook.com/sharer/sharer.php?u
  2. twitter:简单地问我:'发生什么事?'。弹出网址为:https://twitter.com/intent/tweet?text=&url=about%3Ablank&original_referer=

  3. pinterest:在描述区域,它只是附加:@ Url.Encode(PageTitle) popurl是:https://www.pinterest.com/pin/create/button/?url=%40Url.Encode(Request.Url.ToString())&description=%40Url.Encode(PageTitle)

  4. 简而言之,没有一个按钮似乎生成任何页面网址,也没有描述和标题。

    以下是我的文件: 的的index.html

        <a class="soc-facebook popup" href="javascript:window.location=%22http://www.facebook.com/sharer.php?u=%22+encodeURIComponent(document.location)+%22&#38;t=%22+encodeURIComponent(document.title)" title="Share on Facebook..." target="_blank"></a>
        <a class="soc-twitter popup" href="javascript:window.location=%22https://twitter.com/share?url=%22+encodeURIComponent(document.location)+%22&text=%22+encodeURIComponent(document.title)" target="_blank"></a>
        <a class="soc-pinterest popup" href="http://pinterest.com/pin/create/button/?url=@Url.Encode(Request.Url.ToString())&description=@Url.Encode(PageTitle)" target="_blank" title="Pin it"></a>
        <a class="soc-google popup" href="https://plusone.google.com/_/+1/confirm?hl=en&url=<?php if(is_home()){echo home_url();}else{the_permalink();} ?>" target="_blank" title="Plus one this page on Google"></a>
        <a class="soc-linkedin soc-icon-last popup" href="http://www.linkedin.com/shareArticle?mini=true&url=<?php if(is_home()){echo home_url();}else{the_permalink();} ?>" target="_blank"></a>
    

    pop.js

    $(function() {
        // link selector and pop-up window size
        var Config = {
            Link: "a.popup",
            Width: 500,
            Height: 500
    };
    
    // add handler links
    var slink = document.querySelectorAll(Config.Link);
    for (var a = 0; a < slink.length; a++) {
        slink[a].onclick = PopupHandler;
    }
    
    // create popup
    function PopupHandler(e) {
    
        e = (e ? e : window.event);
        var t = (e.target ? e.target : e.srcElement);
    
        // popup position
        var
            px = Math.floor(((screen.availWidth || 1024) - Config.Width) / 2),
            py = Math.floor(((screen.availHeight || 700) - Config.Height) / 2);
    
        // open popup
        var popup = window.open(t.href, "popup", 
            "width="+Config.Width+",height="+Config.Height+
            ",left="+px+",top="+py+
            ",location=0,menubar=0,toolbar=0,status=0,scrollbars=1,resizable=1");
        if (popup) {
            popup.focus();
            if (e.preventDefault) e.preventDefault();
            e.returnValue = false;
        }
    
        return !!popup;
        }
    
    }());
    

    我可能在哪里出错?

    谢谢!

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

这里的技巧是将Open Graph元标记添加到正在共享的页面。 Facebook使用这些元标记来捕获页面元数据。如果您没有在页面上包含元标记,那么您至少可以明确输入Facebook共享者的参数。

有关如何包含这些标记的摘要,请参阅此页:

http://ogp.me/