Facebook-Link ohne JavaScript teilen


Antworten:


190

Du könntest benutzen

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

Derzeit gibt es keine Freigabeoption, ohne die aktuelle URL als Parameter zu übergeben. Sie können einen indirekten Weg verwenden, um dies zu erreichen.

  1. Erstellen Sie eine serverseitige Seite, zum Beispiel: "/sharer.aspx"
  2. Verknüpfen Sie diese Seite, wann immer Sie die Freigabefunktionalität wünschen.
  3. Rufen Sie in der Datei "sharer.aspx" die verweisende URL ab und leiten Sie den Benutzer zu " https://www.facebook.com/sharer/sharer.php?u= {referer}" weiter.

Beispiel für einen 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();
    }
}

Ja, das ist eine schöne Option. Aber wenn ich möchte, dass dies in einem Popup wie der js-Version geöffnet wird, was soll ich tun? In diesem Moment wird es in einem neuen Tab geöffnet! Vielen Dank !
Sagiruddin Mondal

Darum habe ich nicht gebeten. Dazu müssen Sie die URL der freigegebenen Seite kennen, damit Sie "#url" in Ihrer hrefdurch die URL der Seite ersetzen können . Bei Verwendung des Links twitter.com/share müssen Sie jedoch nicht die URL der Seite eingeben, die Sie freigeben.
Web_Designer

1
Wissen Sie, wie man ein Bild sendet?
Miguelmpn

@miguelmpn (und der neuere Leser), siehe diese Antwort . Kurzum: og:imageTag.
Mosh Feu

Gibt es Dokumentation für diese bestimmte Methode?
Naved Khan

129

Ps 2: Wie von Justin hervorgehoben , sehen Sie sich den neuen Share-Dialog von Facebook an . Wird die Antwort so lassen, wie sie für die Nachwelt ist. Diese Antwort ist veraltet


Kurze Antwort: Ja, es gibt eine ähnliche Option für Facebook, für die kein Javascript erforderlich ist (es gibt einige minimale Inline-JS, die nicht obligatorisch sind, siehe Hinweis).

Ps: Der onclickTeil hilft Ihnen nur dabei, das Popup ein wenig anzupassen, ist aber nicht erforderlich, damit der Code funktioniert. Ohne ihn funktioniert er einwandfrei.

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>

@superluminary ... es hat es aber nicht benötigt. Ich hatte erwähnt, dass Sie es entfernen können (der Onclick-Teil) ... und es wird immer noch funktionieren. Aber ich kann sehen, dass alles nicht 100% klar ist ... Ich werde es bearbeiten.
King'ori Maina

2
Schönes Beispiel für anmutige Erniedrigung!
Arnold Daniels

6
+1. Sollte sich ändern http://www.facebook.com/sharer.phpzuhttp://www.facebook.com/sharer/sharer.php
Nir Levy

1
Ich würde diese Antwort aktualisieren, um die Leute darauf hinzuweisen, den Freigabedialog gemäß den Anweisungen von Facebook zu verwenden.
Justin Skiles

Was ist ein TWITTER_HANDLEParameter?
Hamidfzm

38

Es ist möglich, JavaScript in Ihren Code aufzunehmen und weiterhin Nicht-JavaScript-Benutzer zu unterstützen.

Wenn ein Benutzer auf einen der folgenden Links klickt, ohne dass JavaScript aktiviert ist, wird einfach ein neuer Tab geöffnet:

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

Da sie die share-popupKlasse enthalten , können wir diese in jQuery leicht referenzieren und die Fenstergröße an die Domäne anpassen, von der aus wir sie freigeben:

$ (". share-popup"). click (function () {
    var window_size = "width = 585, height = 511";
    var url = this.href;
    var domain = url.split ("/") [2];
    switch (domain) {
        Fall "www.facebook.com":
            window_size = "width = 585, height = 368";
            brechen;
        Fall "www.twitter.com":
            window_size = "width = 585, height = 261";
            brechen;
        Fall "plus.google.com":
            window_size = "width = 517, height = 511";
            brechen;
    }}
    window.open (url, '', 'menubar = no, toolbar = no, resizable = yes, scrollbars = yes,' + window_size);
    falsch zurückgeben;
});

Kein hässliches Inline-JavaScript oder unzählige Änderungen der Fenstergröße mehr. Und es unterstützt weiterhin Nicht-JavaScript-Benutzer.


Schöne Lösung! Außerdem verwende ich Javascript, um die aktuelle Seiten-URL auszufüllen:$(".share-popup").each(function(){ var href = $( this ).attr( "href" ); href = href.replace( "URL_HERE", document.URL ); $( this ).attr( "href", href ); });
GavinoGrifoni

@ GavinoGrifoni Es ist besser, die aktuelle URL serverseitig
einzuschließen

12

Versuchen Sie diese Link-Typen funktioniert tatsächlich für mich.

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

7

Sie können die Option "Direkte URL" der Feed-URL verwenden, wie auf der Seite " Feed-Dialog " beschrieben :

Sie können auch einen Feed-Dialog aufrufen, indem Sie den Benutzer explizit zum Endpunkt / dialog / feed weiterleiten:

  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`

Sieht so aus, als würden sie in ihren Dokumenten nirgendwo mehr "Teilen" erwähnen. Dies wurde durch das Konzept des Hinzufügens zu Ihrem Feed ersetzt.


2
Ist es jedoch nicht möglich, auf diesen Dialog zuzugreifen, ohne eine App-ID zu registrieren?
Eli

7

Ich weiß, dass es ein alter Thread ist, aber ich musste so etwas für ein Projekt tun und wollte die Lösung für 2019 teilen.

Die neue dialogAPI kann Parameter abrufen und ohne Javascript verwendet werden.

Die Parameter sind:

  • app_id (Erforderlich)
  • href Die URL der Seite, die Sie freigeben möchten, verwendet die aktuelle URL, falls keine übergeben wurde.
  • hashtagmuss das #Symbol zum Beispiel #amsterdam haben
  • quote Text, der mit dem Link geteilt werden soll

Sie können eine href ohne Javascript erstellen.

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

Eine zu berücksichtigende Sache ist, dass Facebook Open Graph verwendet. Wenn Ihre OG-Tags nicht richtig eingestellt sind, erhalten Sie möglicherweise nicht die gewünschten Ergebnisse.


Vielen Dank für die Veröffentlichung dieser Antwort. Ich erhalte jedoch den Fehler, dass Can't Load URL: The domain of this URL isn't included in the app's domains. To be able to load this URL, add all domains and subdomains of your app to the App Domains field in your app settings.ich auf localhost bin. Irgendwelche Ideen? Ich habe versucht , mehrere Domänen in sowohl die aufzunehmen Basicund AdvancedEinstellungen auf FB aber kein Glück.
PadawanTony

Sieht nicht so aus, display=popupals würde auf dem Desktop gearbeitet.
Nicke Manarin

6

Viele dieser Antworten gelten nicht mehr. Hier ist meine:

Verwenden Sie den auf der Facebook-Entwicklerseite beschriebenen Freigabedialog .

Beispiel:

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

Sie müssen jedoch Ihre registrierte app_id, die href und eine Weiterleitungs-URL eingeben.


redirect_uriwird nicht mehr benötigt.
Mori


3

1
(Verwenden Sie die Iframe-Version)
DMCS

Das ist nicht wirklich das, wonach ich suche. Ich möchte nur ein Ankerelement verwenden.
Web_Designer

Entschuldigung, dann hast du kein Glück. Es ist entweder Javascript oder iFramed.
DMCS

3
Ich sage, wenn der Benutzer JavaScript deaktiviert hat, kann er die Seite nicht auf Facebook teilen. Ich habe mich nur gefragt, ob es einen ähnlichen Link wie twitter.com/share gibt, aber für Facebook.
Web_Designer

1
@Flimm Bitte lesen Sie developer.facebook.com/bugs/252983554810810 und lesen Sie den Kommentar von Noorin. {quote} Noorin Ladhani · · Facebook-Team Hallo Ronald - Der Share-Button wurde zugunsten des Like-Buttons abgelehnt. {quote}
DMCS


2

Für diejenigen, die Javascript verwenden möchten, aber nicht die Facebook-Javascript-Bibliothek verwenden möchten:

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

Funktioniert auch, wenn Javascript deaktiviert ist, bietet jedoch ein Popup-Fenster mit Freigabe-Vorschau, wenn Javascript aktiviert ist.

Spart einen Nadelklick, wenn keine Facebook-Spyware verwendet wird :)


Gibt es eine Möglichkeit, es in einem neuen Tab zu öffnen? Im Moment ist es ein Popup
Alauddin Ahmed

2

Als Ergänzung zur Lösung von @ rybo111 wäre dies eine LinkedIn-Freigabe:

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

und fügen Sie dies Ihrem Javascript hinzu:

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

Gemäß der LinkedIn-Dokumentation: https://developer.linkedin.com/docs/share-on-linkedin (siehe Abschnitt "Benutzerdefinierte URL")

Für alle, die interessiert sind, habe ich dies in einer Rails-App mit einem LinkedIn-Logo verwendet. Hier ist mein Code, wenn es helfen könnte:

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.