【问题标题】:Is there a way to make a Facebook/Twitter share button that shares a div's innerHTML?有没有办法制作一个分享 div 的 innerHTML 的 Facebook/Twitter 分享按钮?
【发布时间】:2015-07-17 23:45:26
【问题描述】:

这是一个CodePen,可以帮助解释我在做什么。

我有一个使用 Javascript 生成随机事实的网站,并将其放入 divid="fact"。在div 下方是一个简单的“在 Twitter 上分享”链接,使用的是我在网上找到的一个非常基本的分享链接:

http://twitter.com/share?url=http://www.thewikifix.com&text=Simple Share Buttons&hashtags=thewikifix

这很好用,而且很简单,但我想知道是否有办法分享

<div id="fact"></div>

基本上,而不是

"text=SimpleShareButtons"

应该是

"text={document.getElementId("fact").innerHTML}"

(显然第二部分是虚构的,我知道我不能只将 Javascript 字符串放入 HTML 中的链接中)。

有没有办法做我正在做的事情?即使是完全不同的方式也是受欢迎的。

【问题讨论】:

  • 你应该可以使用 js 做到这一点。我会尽力提供帮助。需要注意的是,示例中的“事实”文本太长 (96)...您要修剪吗?
  • @wahwahwah 谢谢!这是一个很好的问题。我想我会保持原样,即使事实太长了。因此,当推文共享窗口打开时,共享者将决定修剪哪些内容以适合推文中的文本。

标签: sharing


【解决方案1】:

为简单起见,对 HTML 进行了两项更改。这是fiddle 代码,应该可以满足您的需求:

[css 未更改]

HTML:

<p id="fact">Babe Ruth once pitched a 4-pitch walk to start a game, got angry at the umpire's calls, and punched him, getting ejected. Reliever Ernie Shore came in and retired every batter for a combined no-hitter.</p>
<p id="sharing"><a id="factLink" href="#" target="_blank">share on twitter</a>
</p>

JS/JQUERY:

 $('#factLink').click(function () {

    // Get the fact text
    var factText = $('#fact').text();

    // Convert to string
    var factStr = factText.toString();

    // Fact length
    var factLen = factText.length;

    // This section formats the text that is too long, remove it if needed
    if (factLen > 103) { // max chacters allowed
        // trim, and allow space for '...'"
        var trimFact = factStr.substring(0, 100);
        var trimFact = trimFact.trim(); //<-- ensures the last character isnt ' '
        factStr = trimFact + "...";
    }

    // Update the link
    var linkRef = "http://twitter.com/share?url=http://www.thewikifix.com&text=" + factStr + "&hashtags=thewikifix";

    $('#factLink').attr('href', linkRef);

});

希望这会有所帮助!

【讨论】:

  • 是否可以将图片与文字一起分享(显示在你的小提琴中)??
  • @VP - 那是bit more complicated 但如果我正确理解链接,如果它是 Twitter 的合作伙伴网站,添加 url 应该 使图像在帖子中呈现
  • 我在这里发现他们不需要 clientIdAppId 像 gmail 或 faebook。我的问题是他们是否会在不使用它的情况下导致任何问题?
【解决方案2】:

您的伪代码几乎正是您想要做的。您只需将其作为变量传递

var inner = document.getElementId("fact").innerHTML;
"text=" + inner

【讨论】:

  • 感谢您的回答。也许是这样的? (参考我的 CodePen):document.getElementById(#sharing).innerHTML = "&lt;a href='http://twitter.com/share?url=http://www.thewikifix.com&amp;text=" + document.getElementById(#fact).innerHTML + "&amp;hashtags=thewikifix' target='_blank'&gt;share on twitter&lt;/a&gt;";
  • 是的,看起来完全没问题。我喜欢将选择器分成变量,但是,这就是你需要做的!
猜你喜欢
  • 2021-07-29
  • 1970-01-01
  • 2016-07-16
  • 2015-09-09
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 1970-01-01
  • 2016-01-06
相关资源
最近更新 更多