1

Twitter Anywhere を使用して、自分のサイトにツイート ボックスを作成しています。すべてが期待どおりに機能します。しかし、この方法の問題点の 1 つは、ツイート ボタンを押してもツイートが通過しない場合 (たとえば、重複ツイートの場合など)、エラー メッセージやアラートが表示されないことです。むしろ、読み込みアイコンが無期限に回転し続けるだけです。私は解決策を探していましたが、私が知る限り、Twitter Anywhere を介したこの種のエラー メッセージ コールバックはありません。私が思いついた最善の解決策は、setTimeout を使用して、ツイートが 15 秒以内に処理されない場合にメッセージを警告することです。

何かのようなもの

.$button.click(function(){
 // alert error if not onTweet after 15 seconds
})

コード ブロックのどこに実装すればよいかわかりません。何かご意見は?(ajax 送信は無視できます。情報が db に投稿されるだけです)。

                    twttr.anywhere(function (T) {
                  T("#tbox").tweetBox({
                      height: 131,
                      width: 249,
                   defaultContent : genTweet, 
                   counter : true, 
                   label : '', 
                   complete : function (tweetBox) {
                      me.tweetBox = tweetBox; 
                      try {
                        me.tweetBox.$editor.attr('maxlength',140);
                        me.tweetBox.$button.html('Submit');
                        me.tweetBox.$counter.prepend('<span>Character Count: </span>');

                         me.tweetBox.$editor.click(function(){
                            if (me.tweetBox.$counter.children('span').length) {

                            }
                            else {
                                me.tweetBox.$counter.prepend('<span>Character Count: </span>');
                            };
                        });
                         me.tweetBox.$counter.css({
                            color : '#918e8e',
                            'font-size' : '8px',
                            'position': 'absolute',
                            'right': '12px',
                            'top': '120px'
                        });
                         me.tweetBox.$editor.css({
                            resize : 'none', 
                            color : '#000', 
                            'font-family': 'Georgia', 
                            'font-size': '15px', 
                            background : 'transparent'
                         }); 
                         me.tweetBox.$button.parent('span').css( {
                            color : '#fff',
                            cursor : 'pointer',
                            'background' : '#ed1c24',
                            border: '1px solid red',
                            'font-weight' : 'bold',
                            padding : '0'

                         }); 
                        me.tweetBox.$button.css( {
                            color : '#fff',
                            cursor : 'pointer',                             
                            'background' : '#ed1c24',
                            'font' : 'bold 17px/1em Arial Narrow, Open Sans, sans-serif',
                            'letter-spacing' : '1px',
                            'padding' : '10px 12px',
                            'text-transform' : 'uppercase',
                            'text-shadow' : '0 0 0 #999'

                         });
                      } catch (e) {
                         //
                      }
                   },
                    onTweet : function (tweet, renderedTweet) {
                        //alert( "Data Saved: " + renderedTweet );
                        $.ajax({ 
                          type: "POST", 
                          url: "insert.php",
                          data:{
                    "tweets":renderedTweet,
                    "emailForm": $('#email').val()
                    }, 
                          success: function(){ 
                            $('#widget-post').ajaxSubmit();
                          } 
                          });

                      $('#step-3 .step-content, #steps').slideUp();
                      $('#thank-you').slideDown();
                   }
                    });
                $('#step-2 .step-content').slideUp();
                $('#step-3 .step-content').slideDown();
                });
4

0 に答える 0