Facebook поделиться ссылкой - без JavaScript - PullRequest
118 голосов
/ 03 февраля 2012

Следующая ссылка предназначена для публикации страницы в Твиттере:

http://twitter.com/share

Есть ли аналогичная опция для Facebook, которая не требует JavaScript?

Я знаю о http://facebook.com/sharer.php,, но для этого требуется, чтобы параметр get был вставлен вручную (что я не собираюсь делать) или с помощью JavaScript (что не соответствует моей ситуации).

Ответы [ 13 ]

163 голосов
/ 31 января 2013

Вы можете использовать

<a href="https://www.facebook.com/sharer/sharer.php?u=#url" target="_blank">Share</a>

В настоящее время нет опции совместного использования без передачи текущего URL-адреса в качестве параметра.Вы можете использовать косвенный способ для достижения этой цели.

  1. Создайте страницу на стороне сервера, например: "/sharer.aspx"
  2. Связывайте эту страницу всякий раз, когда вам нужна функция общего доступа.
  3. В «sharer.aspx» получите URL ссылки и перенаправьте пользователя на «https://www.facebook.com/sharer/sharer.php?u={referer}"

Пример ASP .Net code:

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();
    }
}
119 голосов
/ 28 ноября 2013

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>

Twitter

<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>
35 голосов
/ 12 февраля 2014

Возможно включить 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>

Поскольку они содержат класс 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 пользователей.

7 голосов
/ 09 октября 2012

Вы можете использовать опцию «Прямой URL» для URL канала, как описано на странице Диалог :

Вы также можете вызвать Диалог канала, явно указавпользователь для конечной точки / dialog / 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`

Похоже, они больше не упоминают о "совместном использовании" в своих документах;это было заменено концепцией добавления в ваш канал.

6 голосов
/ 09 сентября 2014

Многие из этих ответов больше не применимы, так что вот мой:

Используйте диалоговое окно «Поделиться», описанное на странице Facebook Dev .

Пример:

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 перенаправления.

5 голосов
/ 08 июня 2018
4 голосов
/ 14 августа 2013

Пожалуйста, посетите веб-сайт, и вы получите Facebook, Google + и Twitter поделиться ссылками http://www.sharelinkgenerator.com/

3 голосов
/ 03 февраля 2012
2 голосов
/ 10 июня 2019

Я знаю, что это старый поток, но мне пришлось сделать что-то подобное для проекта, и я хотел поделиться решением 2019 года.

Новый dialog API может получать параметры и использоваться без каких-либоJavaScript.

Параметры:

  • app_id (обязательно)
  • href URL-адрес страницы, которой вы хотите поделиться, если ни один из них не пройден, будетиспользуйте текущий URL.
  • hashtag должен иметь символ #, например, # amsterdam
  • quote текст для передачи по ссылке

Вы можете создать href без какого-либо javascript.

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

Следует учитывать, что Facebook использует Open Graph , поэтому, если ваши теги OG установлены неправильно, вы можете не получить желаемых результатов.для.

2 голосов
/ 05 сентября 2014

В дополнение к решению @ rybo111, вот что такое общий ресурс LinkedIn:

<a href="http://www.linkedin.com/shareArticle?mini=true&url={articleUrl}&title={articleTitle}&summary={articleSummary}&source={articleSource}" target="_blank" class="share-popup">Share on LinkedIn</a>

и добавьте его в свой Javascript:

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

Согласно документации LinkedIn: https://developer.linkedin.com/docs/share-on-linkedin (см. Раздел «Индивидуальный URL»)

Для всех, кто заинтересован, я использовал это в приложении Rails с логотипом LinkedIn, поэтому вот мой код, если это может помочь:

<%= 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" %>
...