0

我想创建内联的“可推文引号”。例如:

1) 用户点击一行文本,用突出显示/不同颜色表示,表明它是可点击的。例如

<span class="tweetable_quote">this is an amazing quote</span>

2) 使用 Twitter 意图 [1] 打开窗口,其中包含报价。例如

window.open("https://twitter.com/intent/tweet?text=this%20is%20an%20amazing%20quote")

如何将文本(“这是一个惊人的报价”)作为要在 Twitter 意图 URL 中使用的 URL 编码变量传递?请注意,同一页面上可能有多个“可推文引用”。

在此先感谢您的帮助!

[1] https://dev.twitter.com/docs/intents

更新

我尝试实施以下建议,在以下代码中添加以下代码:

<script type="text/javascript">
//  this will be the click handler for all elements with the "tweetable_quote" class.
$(".tweetable_quote").on('click',function(){
  // $(this) refers to the element that was clicked.
  var text = $(this).text();
  window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(text));
});
</script>

<span class="tweetable_quote">This is some quotable text.</span>

页面加载时,控制台显示以下错误:

Uncaught TypeError: Object #<Object> has no method 'on'
(anonymous function)
4

3 回答 3

1

可以使用jQuery来做这样的事情。

$('.tweetable_quote').on('click', function() {
  window.open("https://twitter.com/intent/tweet?text=" + encodeURIComponent ($(this).text()));
});
于 2012-12-30T22:31:59.747 回答
1

也许这就是您正在寻找的 -

//  this will be the click handler for all elements with the "tweetable_quote" class.
$(".tweetable_quote").on('click',function(){
  // $(this) refers to the element that was clicked.
  var text = $(this).text();
  window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(text));
});

我在encodeURIComponent()这里使用函数来正确编码文本 -

encodeURIComponent - 通过用一个、两个、三个或四个表示字符的 UTF-8 编码的转义序列替换某些字符的每个实例来对统一资源标识符 (URI) 组件进行编码(对于由两个字符组成的字符,只有四个转义序列“代理”字符)。

于 2012-12-30T22:32:03.070 回答
1

试试这个:

<script src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
<script type="text/javascript">
  $(function() {
    var $quoteEl = $('.tweetable_quote');

    $quoteEl.on('click',function(){
      var text = $(this).text();
      window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(text));
    });
  });
</script>
于 2013-01-02T20:17:19.490 回答