以下连结适用于在 Twitter 上分享网页:
Http://twitter.com/share
Facebook 有没有类似的不需要 JavaScript 的选项?
我知道 http://facebook.com/sharer.php,但是这需要手动插入 get 参数(我不会这么做) ,或者使用 JavaScript (这不适合我的情况)。
不推荐使用 http://facebook.com/sharer.php
您有几个选项(使用 iframe 版本) :
Http://developers.facebook.com/docs/reference/plugins/like/
Http://developers.facebook.com/docs/reference/plugins/send/
Https://developers.facebook.com/docs/reference/plugins/like-box/
如何分享内容: 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 作为参数传递。您可以使用间接的方法来实现这一点。
示例 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部分只能帮助你自定义弹出窗口一点点,但是是 不需要的代码工作... 它会工作得很好没有它。
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
$(".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 就可以使用。
dialog
这些参数是:
app_id
href
hashtag
#
quote
你可以在没有任何 javascript 的情况下创建 href。
<a href="https://www.facebook.com/dialog/feed?&app_id=APP_ID&link=URI&display=popup"e=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.