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();
});