没有JavaScript的Facebook分享链接

Facebook share link without JavaScript

以下链接用于在Twitter上共享页面:

http://twitter.com/share

Facebook是否有不需要JavaScript的类似选项?

我知道http://facebook.com/sharer.php,但这需要手动插入get参数(我不会这样做)或使用JavaScript(这不适合我的情况)。


你可以用

1
Share

当前,如果不传递当前网址作为参数,则没有共享选项。您可以使用间接方式来实现。

  • 创建一个服务器端页面,例如:" /sharer.aspx"
  • 需要共享功能时,请链接此页面。
  • 在" sharer.aspx"中获取引用URL,并将用户重定向到" https://www.facebook.com/sharer/sharer.php?u={referer}"
  • 示例ASP .Net代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public partial class Sharer : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            var referer = Request.UrlReferrer.ToString();

            if(string.IsNullOrEmpty(referer))
            {
                // some error logic
                return;
            }

            Response.Clear();
            Response.Redirect("https://www.facebook.com/sharer/sharer.php?u=" + HttpUtility.UrlEncode(referer));
            Response.End();
        }
    }


    Ps 2:正如Justin指出的那样,请查看Facebook的新"共享对话框"。将保留后代的答案。这个答案已经过时了

    简短的回答,是的,Facebook有一个类似的选项,不需要javascript(嗯,有一些非强制性的最小内联JS,请参见注释)。

    附言:onclick部分仅可以帮助您稍微自定义弹出窗口,但不需要代??码即可工作……没有它就可以正常工作。

    脸书

    1
    2
    3
    <a href="https://www.facebook.com/sharer/sharer.php?u=URLENCODED_URL&t=TITLE"
       onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;"
       target="_blank" title="Share on Facebook">

    推特

    1
    2
    3
    <a href="https://twitter.com/share?url=URLENCODED_URL&via=TWITTER_HANDLE&text=TEXT"
       onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;"
       target="_blank" title="Share on Twitter">


    可以在代码中包含JavaScript,并且仍然支持非JavaScript用户。

    如果用户在未启用JavaScript的情况下单击以下任何链接,则只需打开一个新标签即可:

    1
    2
    3
    4
    <!-- Remember to change URL_HERE, TITLE_HERE and TWITTER_HANDLE_HERE -->
    Share on Facebook
    Share on Twitter
    Share on Googleplus

    因为它们包含share-popup类,所以我们可以轻松地在jQuery中引用它们,并更改窗口大小以适合我们共享的域:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $(".share-popup").click(function(){
        var window_size ="width=585,height=511";
        var url = this.href;
        var domain = url.split("/")[2];
        switch(domain) {
            case"www.facebook.com":
                window_size ="width=585,height=368";
                break;
            case"www.twitter.com":
                window_size ="width=585,height=261";
                break;
            case"plus.google.com":
                window_size ="width=517,height=511";
                break;
        }
        window.open(url, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,' + window_size);
        return false;
    });

    不再有难看的内联JavaScript,或无数的窗口大小更改。而且它仍然支持非JavaScript用户。


    试试这些链接类型实际上对我有用。

    1
    2
    3
    4
    https://www.facebook.com/sharer.php?u=YOUR_URL_HERE
    https://twitter.com/intent/tweet?url=YOUR_URL_HERE
    https://plus.google.com/share?url=YOUR_URL_HERE
    https://www.linkedin.com/shareArticle?mini=true&url=YOUR_URL_HERE

    我知道这是一个旧线程,但是我必须为一个项目做类似的事情,我想分享2019年的解决方案。

    新的dialog API可以获取参数,并且无需任何JavaScript就可以使用。

    这些参数是:

    • app_id(必填)
    • href您希望共享的页面的URL,如果没有通过,将使用当前URL。
    • hashtag必须具有#符号,例如#amsterdam
    • quote与链接共享的文本

    您可以创建没有任何JavaScript的href。

    1
    Share

    要考虑的一件事是,Facebook正在使用Open Graph,因此如果未正确设置OG标签,则可能无法获得所需的结果。


    您可以使用Feed URL"直接URL"选项,如Feed对话框页面中所述:

    You can also bring up a Feed Dialog by explicitly directing the user to the /dialog/feed endpoint:

    1
    2
    3
    4
    5
    6
    7
    8
      https://www.facebook.com/dialog/feed?  
      app_id=123050457758183&
      link=https://developers.facebook.com/docs/reference/dialogs/&
      picture=http://fbrell.com/f8.jpg&
      name=Facebook%20Dialogs&
      caption=Reference%20Documentation&
      description=Using%20Dialogs%20to%20interact%20with%20users.&
      redirect_uri=http://www.example.com/response`

    看起来他们不再在文档的任何地方提及"共享";它已被添加到Feed中的概念所取代。


    这些答案中的许多不再适用,所以这是我的:

    使用Facebook开发人员页面上描述的"共享"对话框。

    例:

    1
    2
    3
    4
    5
    https://www.facebook.com/dialog/share?
      app_id=<your_app_id>
      &display=popup
      &href=https%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2F
      &redirect_uri=https%3A%2F%2Fdevelopers.facebook.com%2Ftools%2Fexplorer

    但是您必须输入注册的app_id,href和重定向uri。


    请访问该网站,您将获得Facebook,google +和Twitter共享链接http://www.sharelinkgenerator.com/


    如果您想在更多论坛上分享,这里是解决方案。
    https://github.com/bradvin/social-share-urls


    不推荐使用http://facebook.com/sharer.php

    您有几种选择(使用iframe版本):

    http://developers.facebook.com/docs/reference/plugins/like/

    http://developers.facebook.com/docs/reference/plugins/send/

    https://developers.facebook.com/docs/reference/plugins/like-box/


    添加到@ rybo111的解决方案中,这是LinkedIn共享的内容:

    1
    Share on LinkedIn

    并将其添加到您的Javascript:

    1
    2
    3
    case"www.linkedin.com":
        window_size ="width=570,height=494";
        break;

    根据LinkedIn文档:https://developer.linkedin.com/docs/share-on-linkedin(请参阅"自定义网址"部分)

    对于感兴趣的任何人,我在带有LinkedIn徽标的Rails应用程序中使用了此代码,因此这是我的代码(如果有帮助的话):

    1
    <%= link_to image_tag('linkedin.png', size:"50x50"),"http://www.linkedin.com/shareArticle?mini=true&url=#{job_url(@job)}&title=#{full_title(@job.title).html_safe}&summary=#{strip_tags(@job.description)}&source=SOURCE_URL", class:"share-popup" %>

    对于那些希望使用javascript但又不想使用Facebook javascript库的用户:

    1
    2
    3
    <a id="shareFB" href="https://www.facebook.com/sharer/sharer.php?u=URLENCODED_URL&t=TITLE"
       onclick="javascript:window.open(this.href, '', 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600');return false;"   target="_blank" title="Share on Facebook">Share on Facebook
    <script type="text/javascript">document.getElementById("shareFB").setAttribute("href","https://www.facebook.com/sharer/sharer.php?u=" + document.URL);

    即使禁用了javascript,也可以使用,但是如果启用了javascript,则会为您提供一个带有共享预览的弹出窗口。

    在不使用任何Facebook js间谍软件的情况下,节省了一针点击:)


    如何分享内容:https://developers.facebook.com/docs/share/

    您必须选择使用不使用JS的不推荐使用的功能,并每天检查一下,或者按照使用JS的方式进行娱乐。