[JavaScript]JS like flash #02

ajaxでどこまでflashっぽくできるのか第2弾。
今回モデルにしたのは「なにかにキクぜ。グラソー ビタミンウォーター」です。
第1弾はこちら ajax like flash #01

CSS3を使っているのでブラウザによって動作が異なります。
GoogleChrome6.0.472.55(完璧に動作)
SRWareIron4.0.280(完璧に動作)
Safari4.0.5(完璧に動作)
Firefox3.6.2(3D回転無し)
IE8(2D回転3D回転無し)

ajax like flash #02

[javascript]Photoshopの自動化

[javascript]Photoshopの自動化

前提としてjavascriptに精通していること。

1)
C:\Program Files\Adobe\Adobe Photoshop CS4\Scripting\Utilities\ScriptListener.8li
↑を↓へコピー
C:\Program Files\Adobe\Adobe Photoshop CS4\Plug-ins\Automate

2)
Photoshop上でスクリプト化したい操作をする

3)
デスクトップに出来たScriptingListenerJS.logを開いて
処理の該当部分をコピー

4)
3)でコピーしたものをペーストして※1を参照しながら
必要なコードをガリガリ書く

5)
拡張子jsx、文字コードUTF-8で保存

6)
ファイル>スクリプト>参照>出来たjsxファイル
で実行できます。

jsxファイルを下記フォルダへ入れておけばPhotoshop再起動後に
ファイル>スクリプトのメニューに表示されるようになります。
C:\Program Files\Adobe\Adobe Photoshop CS4\Presets\Scripts

※1 Photoshop CS自動化作戦
http://www.openspc2.org/book/PhotoshopCS/

[twitter]reply counter ver2

あなたが誰に何回ツイートしたか調べます。OAuth認証バージョン。
最近フォローした100人まで、過去3200ツイートまで調べることが出来ます。
OAuth認証なのでツイート非公開の人も使えます。
逆に自分以外のIDは使えません。 -> 速攻で修正。friendのIDなら使える。
前回のものより正確。※Twitterのサーバの調子による。
前回のものよりサーバに優しい。

reply counter ver2


[twitter]twitterクライアント作った

OAuth認証ってどうやるんだろうと思い、OAuth認証の勉強のついでにtwitterクライアントを作りました。
普段twitterを使うときはmonkeyflyというアドオンを使っているのですが
タブを追加すると重いのが不満でした。
というわけでなるだけ描画が軽くてマルチタブ出来るクライアントを作りました。
制作期間6日で作ったので何か不具合あるかもしれません。

※7/20 twitterサーバに障害が発生しておりログインできません。
詳細:http://status.twitter.com/
直ったみたいです。

[update] 7/23 セッション、クッキーまわりを修正。
[update] 7/27 不具合を修正。safari5に対応。
[update] 7/28
暫定的にTwitpicタイムラインに対応。
TwitpicにTwitterと同じIDでアカウントを作ってある場合「+」にTwitpicが現れる。

[update] 8/2 「more」の不具合を修正。
[update] 8/6 誰宛か明確にした。
[update] 8/9 後回しにしてた諸々を実装。
[update] 8/11 色々改装。IE8に対応。「retweet_by_me」に「undo」を追加。
「@somebody」を追加。reply tracerの機能を実装。

[update] 9/15 こっそりTwitpicTLの不具合を修正。
[update] 10/28
「@somebody」「Twitpic」廃止。
モバイルに対応。見た目を細かく修正。

[update] 11/08
押し間違いやすかったretweetをツイート下部へ。
favoriteとかretweetとか出来ない不具合修正。
bookmarkをfavoriteへ。

[update] 11/17 リツイート系にdetail追加。誰がリツイートしたかわかる。

WindowsXPの下記のブラウザで動作を確認しました。
Firefox3.6
Google Chrome5.0.375.99
SRWare Iron4.0.280
Safari5.0

「sign in with twitter」をクリックすると
twitterのサイトにリダイレクトされるのでアプリケーションを許可してください。
上部の「+」から追加したいタブを選択してください。
上部のauto updateの値が自動更新の間隔です。0にすると自動更新はしません。

[JavaScript]jsでリンクを開くとリファラが取得出来ない

某案件でこんな事象があったようなので調べました。
IE6,7でjavascriptのwindow.openでリンクを開くとリファラが取得できないようです。
また、AS3のnavigateToURL、AS2のgetURL、AS2のExternalInterfaceでwindow.open
ではswfファイルの絶対パスがリファラになってしまうようです。
その回避方法をここに記します。

サンプル

//リンクを開くときにこのメソッドを使う
function open_main2(url, target){
	if(document.all){//IEの時
		var body=document.getElementsByTagName("body")[0];
		var atag=document.createElement("a");
		atag.href=url;
		atag.target=target;
		body.appendChild(atag);
		atag.click();
		body.removeChild(atag);
	}else{//IE以外
		window.open(url, target);
	}
}

[JavaScript]ブックマークレットまとめ

サンプル

twitter

var t="frasio report | /";
var url="http://twitter.com/home?status="+encodeURIComponent(t);
window.open(url, "_blank");

はてなブックマーク

var t="frasio report";
var u="/";
var url="http://b.hatena.ne.jp/add?mode=confirm&url="+u+"&title="+encodeURIComponent(t);
window.open(url, "_blank");

Yahoo!ブックマーク

var t="frasio report";
var u="/";
var url="http://bookmarks.yahoo.co.jp/bookmarklet/showpopup?t="+encodeURIComponent(t)+"&u="+encodeURIComponent(u)+"&ei=UTF-8";
window.open(url, "_blank");

Googleブックマーク

var t="frasio report";
var u="/";
var te=encodeURIComponent((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection &&document.selection.createRange&&document.selection.createRange().text));
var url;
if(te==""){
	url="http://www.google.com/bookmarks/mark?op=add&bkmk="+u+"&title="+encodeURIComponent(t)
}else{
	url="http://www.google.com/bookmarks/mark?op=add&bkmk="+u+"&title="+encodeURIComponent(t)+"&annotation="+te;
}
window.open(url, "_blank");

facebook

var t="frasio report";
var u="/";
var url="http://www.facebook.com/sharer.php?u="+u+"&t="+encodeURIComponent(t);
window.open(url, "_blank");

delicious.

var t="frasio report";
var u="/";
var url="http://delicious.com/save?v=5&noui&jump=close&url="+encodeURIComponent(u)+"&title="+encodeURIComponent(t);
window.open(url, "_blank");

Yahoo!カレンダー

var std=new Date();
var st=std.getFullYear()+pzero(std.getMonth()+1,2)+pzero(std.getDate(),2)+"T"+pzero(std.getHours().toString(), 2)+pzero(std.getMinutes().toString(), 2);
var dur="0100";
var t="frasio report";
var s="flashやflashとかflashなど・・・最近はそうでもない";
var url='https://calendar.yahoo.co.jp/?';
url+='V=60';
url+='&ENC=UTF-8';
url+='&ST='+st;
url+='&DUR='+dur;
url+='&TITLE='+encodeURIComponent(t);
url+='&DESC='+encodeURIComponent(s);
url+='&URL='+"/";
url+='&chgp=1';
window.open(url, "_blank");