Facebook поделиться ссылкой без JavaScript

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

http://twitter.com/share

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

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

Ответ 1

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

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

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

  • Создайте серверную страницу, например: "/sharer.aspx"
  • Свяжите эту страницу, когда хотите использовать общие функции.
  • В "sharer.aspx" получить ссылочный URL-адрес и перенаправить пользователя на " 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();
    }
}

Ответ 2

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>

щебет

<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>

Ответ 3

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

Ответ 4

Вы можете использовать опцию "Прямой 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`

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

Ответ 5

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

Используйте диалоговое окно "Поделиться", описанное на странице разработчика 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

Но вы должны вставить свой зарегистрированный app_id, href и URI перенаправления.

Ответ 6

Попробуйте эти типы ссылок на самом деле работает для меня.

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

Ответ 9

Для тех, кто хочет использовать javascript, но не хочет использовать библиотеку javascript Facebook:

<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</a>
<script type="text/javascript">document.getElementById("shareFB").setAttribute("href", "https://www.facebook.com/sharer/sharer.php?u=" + document.URL);</script>

Работает, даже если javascript отключен, но дает вам всплывающее окно с предварительным просмотром share, если включен javascript.

Сохраняет один игольный клик, не используя какие-либо шпионские программы Facebook js:)

Ответ 10

В дополнение к решению @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" %>

Ответ 11

Я знаю это старый поток, но я должен был сделать что-то подобное для проекта, и я хотел поделиться решением 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>

Ответ 12

Как обмениваться контентом: https://developers.facebook.com/docs/share/

Вам нужно выбрать использование устаревшей функции без JS и проверять каждый день, или следовать методу использования JS и получать удовольствие.