没有 JavaScript 的 Facebook 共享链接

以下连结适用于在 Twitter 上分享网页:

Http://twitter.com/share

Facebook 有没有类似的不需要 JavaScript 的选项?

我知道 http://facebook.com/sharer.php,但是这需要手动插入 get 参数(我不会这么做) ,或者使用 JavaScript (这不适合我的情况)。

286398 次浏览

如何分享内容: https://developers.facebook.com/docs/share/

你必须选择不使用 JS 的弃用函数,并且每天检查,或者按照使用 JS 的方法来享受乐趣。

您可以使用 Feed URL“ Direct URL”选项,如 饲料对话框页面所述:

您还可以通过显式地将用户指向/Dialogue/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`

看起来他们不再在他们的文档中的任何地方提到“共享”; 这已经被添加到你的 Feed 的概念所取代。

你可以用

<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 代码:

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: 正如 贾斯汀所指出的,看看 Facebook 新的分享对话框。会把答案留给子孙后代。这个答案已经过时了


简而言之,是的,Facebook 有一个类似的选项,它不需要 javascript (好吧,有一些非强制的最小内联 JS,参见注释)。

附: onclick部分只能帮助你自定义弹出窗口一点点,但是是 不需要的代码工作... 它会工作得很好没有它。

脸书

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

在代码中包含 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 用户。

对于那些希望使用 javascript 但不想使用 Facebook javascript 库的用户:

<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 也可以工作,但是如果启用了 javascript,就会提供一个带有共享预览的弹出窗口。

不使用任何 Facebook 间谍软件时,省去了点击一次的麻烦:)

再加上@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”部分)

对于任何感兴趣的人,我在一个带有 LinkedIn 标志的 Rails 应用程序中使用了这个,所以这里是我的代码,如果它可能有帮助的话:

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

许多这样的答案已经不再适用了,所以我的答案是:

使用 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 和 redirect uri。

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

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

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

新的 dialog API 可以获得参数并且不需要任何 javascript 就可以使用。

这些参数是:

  • app_id(必需)
  • href您希望共享的页面的 URL (如果没有通过)将使用当前 URL。
  • hashtag必须有 #符号,例如 # 阿姆斯特丹
  • 与链接共享的 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>

One thing to consider is that Facebook is using Open Graph so in case your OG tags are not set properly you might not get the results you wish for.