0

インラインの「ツイート可能な見積もり」を作成したい。例えば:

1)ユーザーがテキストの行をクリックし、クリック可能であることを示すためにハイライト/異なる色で示されます。例えば

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

2)Twitter intent [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

これを試して:

<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 に答える
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 エンコーディングを表す 1、2、3、または 4 つのエスケープ シーケンスで置き換えることにより、Uniform Resource Identifier (URI) コンポーネントをエンコードします (2 つの文字で構成される文字の場合、4 つのエスケープ シーケンスのみになります)。 「代理」文字)。

于 2012-12-30T22:32:03.070 に答える