Liên kết chia sẻ Facebook không có JavaScript


137

Liên kết sau đây là để chia sẻ một trang trên Twitter:

http://twitter.com/share

Có một tùy chọn tương tự cho Facebook không yêu cầu JavaScript không?

Tôi biết về http://facebook.com/sharer.php , nhưng điều đó đòi hỏi phải có một tham số get được chèn thủ công (điều mà tôi sẽ không làm) hoặc với JavaScript (không phù hợp với tình huống của tôi).

Câu trả lời:


190

Bạn đã có thể sử dụng

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

Hiện tại không có tùy chọn chia sẻ mà không chuyển url hiện tại làm tham số. Bạn có thể sử dụng một cách gián tiếp để đạt được điều này.

  1. Tạo trang bên máy chủ chẳng hạn: "/sharer.aspx"
  2. Liên kết trang này bất cứ khi nào bạn muốn chức năng chia sẻ.
  3. Trong "sharer.aspx", hãy lấy url giới thiệu và chuyển hướng người dùng đến " https://www.facebook.com/sharer/sharer.php?u= {người giới thiệu}"

Ví dụ mã 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();
    }
}

vâng, đây là một lựa chọn tốt Nhưng nếu tôi muốn nó mở trong một cửa sổ bật lên như phiên bản js, tôi nên làm gì? Tại thời điểm này, nó đang mở trong một tab mới! Cảm ơn !
Sagiruddin Thứ Hai

Đây không phải là những gì tôi đã yêu cầu. Điều này đòi hỏi bạn phải biết URL của trang đang được chia sẻ, vì vậy bạn có thể thay thế "#url" trong hrefURL của mình bằng URL của trang. Tuy nhiên, sử dụng liên kết twitter.com/share không yêu cầu bạn chèn URL của trang mà bạn chia sẻ.
Web_Designer

1
Bạn có biết làm thế nào để gửi một hình ảnh?
Miguelmpn

@miguelmpn (và người đọc mới hơn), xem câu trả lời này . Tóm lại: og:imagethẻ.
Mosh Feu

Có tài liệu cho phương pháp đặc biệt này?
Khan

129

Ps 2: Như Justin đã chỉ ra , hãy xem Hộp thoại chia sẻ mới của Facebook . Sẽ để lại câu trả lời như là cho hậu thế. Câu trả lời này đã lỗi thời


Câu trả lời ngắn, vâng, có một tùy chọn tương tự cho Facebook, không yêu cầu javascript (vâng, có một số JS nội tuyến tối thiểu không bắt buộc, xem ghi chú).

Ps: Phần này onclickchỉ giúp bạn tùy chỉnh cửa sổ bật lên một chút nhưng không bắt buộc mã phải hoạt động ... nó sẽ hoạt động tốt nếu không có nó.

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 ... nó có nhưng không yêu cầu nó. Tôi đã đề cập rằng bạn có thể loại bỏ nó (phần onclick) ... và nó vẫn sẽ hoạt động. Nhưng tôi có thể thấy tất cả không rõ ràng 100% ... Tôi sẽ chỉnh sửa nó.
King'ori Maina

2
Ví dụ tốt đẹp của sự xuống cấp duyên dáng!
Arnold Daniels

6
+1. Nên đổi http://www.facebook.com/sharer.phpthànhhttp://www.facebook.com/sharer/sharer.php
Nir Levy

1
Tôi sẽ cập nhật câu trả lời này để hướng mọi người sử dụng Hộp thoại Chia sẻ theo chỉ dẫn của Facebook.
Justin Skiles

TWITTER_HANDLETham số là gì?
hamidfzm

38

Có thể bao gồm JavaScript trong mã của bạn và vẫn hỗ trợ người dùng không sử dụng JavaScript.

Nếu người dùng nhấp vào bất kỳ liên kết nào sau đây mà không bật JavaScript, nó sẽ chỉ mở một tab mới:

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

Vì chúng có chứa share-popuplớp, chúng tôi có thể dễ dàng tham chiếu các mục này trong jQuery và thay đổi kích thước cửa sổ cho phù hợp với miền mà chúng tôi đang chia sẻ từ:

$ (". share-popup"). click (function () {
    var window_size = "width = 585, height = 511";
    url url = this.href;
    var domain = url.split ("/") [2];
    chuyển đổi (tên miền) {
        trường hợp "www.facebook.com":
            window_size = "width = 585, height = 368";
            phá vỡ;
        trường hợp "www.twitter.com":
            window_size = "width = 585, height = 261";
            phá vỡ;
        trường hợp "plus.google.com":
            window_size = "width = 517, height = 511";
            phá vỡ;
    }
    window.open (url, '', 'menubar = no, thanh công cụ = không, thay đổi kích thước = có, scrollbars = yes,' + window_size);
    trả lại sai;
});

Không còn JavaScript nội tuyến xấu xí, hoặc vô số thay đổi kích thước cửa sổ. Và nó vẫn hỗ trợ người dùng không sử dụng JavaScript.


Giải pháp tốt đẹp! Ngoài ra, tôi đang sử dụng một số javascript để điền vào URL trang hiện tại:$(".share-popup").each(function(){ var href = $( this ).attr( "href" ); href = href.replace( "URL_HERE", document.URL ); $( this ).attr( "href", href ); });
GavinoGrifoni

@GavinoGrifoni tốt hơn là bao gồm phía máy chủ URL hiện tại để hỗ trợ người dùng không sử dụng JavaScript
rybo111 30/03/2015

12

Hãy thử các loại liên kết thực sự làm việc cho tôi.

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

Bạn có thể sử dụng tùy chọn "URL trực tiếp" của URL, như được mô tả trên trang Hộp thoại nguồn cấp dữ liệu :

Bạn cũng có thể hiển thị Hộp thoại nguồn cấp dữ liệu bằng cách chỉ dẫn rõ ràng người dùng đến điểm cuối / hộp thoại / nguồn cấp dữ liệu:

  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`

Có vẻ như họ không còn đề cập đến việc "chia sẻ" bất cứ nơi nào trong tài liệu của họ; điều này đã được thay thế bằng khái niệm thêm vào Nguồn cấp dữ liệu của bạn.


2
Nhưng không thể truy cập hộp thoại đó mà không đăng ký ID ứng dụng?
Eli

7

Tôi biết đó là một chủ đề cũ, nhưng tôi đã phải làm một cái gì đó như thế cho một dự án và tôi muốn chia sẻ giải pháp năm 2019.

Cái mới dialogAPI có thể nhận được thông số và được sử dụng mà không cần bất kỳ javascript nào.

Các thông số là:

  • app_id (Cần thiết)
  • href URL của trang bạn muốn chia sẻ, trong trường hợp không có thông qua nào sẽ sử dụng URL hiện tại.
  • hashtagphải có #biểu tượng ví dụ #amsterdam
  • quote văn bản được chia sẻ với liên kết

Bạn có thể tạo một href mà không cần bất kỳ javascript nào.

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

Một điều cần xem xét là Facebook đang sử dụng Open Graph để trong trường hợp các thẻ OG của bạn không được đặt đúng, bạn có thể không nhận được kết quả như mong muốn.


Cảm ơn đã đăng câu trả lời này. Tuy nhiên, tôi nhận được lỗi 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.tôi trên localhost. Có ý kiến ​​gì không? Tôi đã cố gắng đưa một số tên miền vào cả cài đặt BasicAdvancedtrên FB nhưng không gặp may.
padawanTony

Không giống như display=popupđang làm việc trên máy tính để bàn.
Nicke Manarin

6

Rất nhiều câu trả lời không còn được áp dụng, vì vậy đây là của tôi:

Sử dụng Hộp thoại Chia sẻ được mô tả tại Trang Dev của Facebook .

Thí dụ:

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

Nhưng bạn phải đặt trong app_id, the href và uri chuyển hướng đã đăng ký của bạn.


redirect_urikhông cần thiết nữa.
Mori


3

1
(sử dụng phiên bản iframe)
DMCS

Đây không thực sự là những gì tôi đang tìm kiếm. Tôi chỉ muốn sử dụng một yếu tố neo.
Thiết kế web

Xin lỗi, sau đó bạn không gặp may. Đó là Javascript hoặc iFazed.
DMCS

3
Tôi đang nói rằng nếu người dùng bị tắt JavaScript, thì họ sẽ không thể chia sẻ trang này trên Facebook. Tôi chỉ tự hỏi liệu có một liên kết tương tự như twitter.com/share nhưng dành cho facebook.
Web_Designer

1
@Flimm Vui lòng xem nhà phát triển.facebook.com / bugs / 252983554810810 và đọc nhận xét từ Noorin. {quote} Noorin Ladhani · · Nhóm Facebook Hi Ronald - Nút Chia sẻ đã không được chấp nhận để ủng hộ nút Thích. {quote}
DMCS


2

Đối với những người muốn sử dụng javascript nhưng không muốn sử dụng thư viện javascript của 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>

Hoạt động ngay cả khi javascript bị vô hiệu hóa, nhưng cung cấp cho bạn một cửa sổ bật lên với xem trước chia sẻ nếu javascript được bật.

Lưu một lần bấm kim trong khi không sử dụng bất kỳ phần mềm gián điệp js Facebook nào :)


Có cách nào để mở nó trong tab mới. Ngay bây giờ, nó đang xuất hiện một cửa sổ bật lên
Alauddin Ahmed

2

Thêm vào giải pháp của @ rybo111, đây là chia sẻ của 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>

và thêm phần này vào Javascript của bạn:

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

Theo tài liệu LinkedIn: https://developer.linkedin.com/docs/share-on-linkedin (Xem phần "Url tùy chỉnh")

Đối với bất kỳ ai quan tâm, tôi đã sử dụng ứng dụng này trong ứng dụng Rails có logo LinkedIn, vì vậy đây là mã của tôi nếu nó có thể giúp:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.