Facebook分享链接 - 没有javascript

Web*_*ner 125 facebook facebook-sharer facebook-like

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

http://twitter.com/share

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

我知道http://facebook.com/sharer.php,但是需要手动插入get参数(我不打算这样做),或者使用javascript(这不符合我的情况).

Med*_*kal 172

你可以用

<a href="https://www.facebook.com/sharer/sharer.php?u=#url" target="_blank">Share</a>
Run Code Online (Sandbox Code Playgroud)

目前没有传递当前url作为参数的共享选项.您可以使用间接方式来实现此目的.

  1. 创建服务器端页面,例如:"/ usersr.aspx"
  2. 只要您想要共享功能,请链接此页面.
  3. 在"sharer.aspx"中获取引荐网址,并将用户重定向到" https://www.facebook.com/sharer/sharer.php?u= {referer}"

示例ASP .Net代码:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)


Kin*_*ina 125

Ps 2:正如贾斯汀所指出的那样,查看Facebook的新分享对话.将为后代留下答案.这个答案已经过时了


简短的回答,是的Facebook有一个类似的选项,不需要javascript(好吧,有一些非强制性的内联JS,请参阅注释).

Ps:该onclick部分仅帮助您自定义弹出窗口,但代码不需要工作......如果没有它,它将正常工作.

Facebook的

<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">
</a>
Run Code Online (Sandbox Code Playgroud)

推特

<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">
</a>
Run Code Online (Sandbox Code Playgroud)

GOOGLEPLUS

<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">
</a>
Run Code Online (Sandbox Code Playgroud)

  • +1.应该将`http:// www.facebook.com/sharer.php`更改为`http:// www.facebook.com/sharer/sharer.php` (5认同)
  • 这个解决方案显然需要JavaScript. (2认同)
  • 优雅降级的好例子! (2认同)

ryb*_*111 36

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

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

<!-- Remember to change URL_HERE, TITLE_HERE and TWITTER_HANDLE_HERE -->
<a href="http://www.facebook.com/sharer/sharer.php?u=URL_HERE&t=TITLE_HERE" target="_blank" class="share-popup">Share on Facebook</a>
<a href="http://www.twitter.com/intent/tweet?url=URL_HERE&via=TWITTER_HANDLE_HERE&text=TITLE_HERE" target="_blank" class="share-popup">Share on Twitter</a>
<a href="http://plus.google.com/share?url=URL_HERE" target="_blank" class="share-popup">Share on Googleplus</a>
Run Code Online (Sandbox Code Playgroud)

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

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


Sha*_*har 10

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

新的dialogAPI 可以获取参数并在没有任何 javascript 的情况下使用。

参数是:

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

您可以在没有任何 javascript 的情况下创建一个 href。

<a href="https://www.facebook.com/dialog/feed?&app_id=APP_ID&link=URI&display=popup&quote=TEXT&hashtag=#HASHTAG" target="_blank">Share</a>
Run Code Online (Sandbox Code Playgroud)

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


小智 9

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

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
Run Code Online (Sandbox Code Playgroud)


Jor*_*ter 7

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

您还可以通过明确地将用户定向到/ dialog/feed端点来调出Feed对话框:

  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`
Run Code Online (Sandbox Code Playgroud)

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

  • 但是如果不注册App ID就无法访问该对话框吗? (2认同)

Jus*_*les 6

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

使用Facebook开发页面中描述的共享对话框.

例:

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
Run Code Online (Sandbox Code Playgroud)

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


小智 5

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