上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 前回でとりあえず作成したpost to Twitterですが、postした後に現在見ているページからTwitterへ画面遷移が起きてしまいます。私の使い方の場合、この画面遷移は無い方が嬉しいので、もう一つ別のブックマークレットを作る事にしました。

方法としてはformと一緒にheight=0、width=0のiframe要素を作成し、iframe要素をtargetとしてPOSTする事で一見画面遷移が起きていないように見せるというものです。


javascript:
(
function(){
if(status=prompt('post to Twitter')){
commit='Update';

i=document.createElement('iframe');
i.setAttribute('name','TwitterPostIframe');
i.setAttribute('width',0);
i.setAttribute('height',0);
document.body.appendChild(i);

f=document.createElement('form');
f.setAttribute('name','TwitterPostForm');
f.setAttribute('action','http://twitter.com/status/update');
f.setAttribute('method','POST');
f.setAttribute('target','TwitterPostIframe');

s=document.createElement('input');
s.setAttribute('name','status');
s.setAttribute('value',status);
s.setAttribute('type','hidden');
f.appendChild(s);

c=document.createElement('input');
c.setAttribute('name','commit');
c.setAttribute('value',commit);
c.setAttribute('type','hidden');
f.appendChild(c);

document.body.appendChild(f);
document.TwitterPostForm.submit();
}
}
)();


ただし、このままだと同じページで複数回のpost to Twitterが出来ないので、iframeへのpostが終わったタイミングで追加した要素を削除してやります。


javascript:
(
function(){
if(status=prompt('post to Twitter')){
commit='Update';

i=document.createElement('iframe');
i.setAttribute('name','TwitterPostIframe');
i.setAttribute('width',0);
i.setAttribute('height',0);
i.onload=
function(){
document.body.removeChild(f);
document.body.removeChild(i);
};
document.body.appendChild(i);

f=document.createElement('form');
f.setAttribute('name','TwitterPostForm');
f.setAttribute('action','http://twitter.com/status/update');
f.setAttribute('method','POST');
f.setAttribute('target','TwitterPostIframe');


s=document.createElement('input');
s.setAttribute('name','status');
s.setAttribute('value',status);
s.setAttribute('type','hidden');
f.appendChild(s);

c=document.createElement('input');
c.setAttribute('name','commit');
c.setAttribute('value',commit);
c.setAttribute('type','hidden');
f.appendChild(c);

document.body.appendChild(f);
document.TwitterPostForm.submit();
}
}
)();



続く
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2005 The elephant vanishes all rights reserved.
Powered by FC2ブログ.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。