1月 29, 2008
javascript で style.display したらフォーカスが消えました。
こんな感じのJSを作っていて
function clickable(){
document.getElementById(‘hidden’).style.display = “none”;
document.getElementById(‘visible’).style.display = “block”;
}
こんな感じのinput
<input type=text id=clickable onBlur=clickable() />
<input type=text id=hidden />
<input type=text id=visible />
みたいな設定になったときに
id=clickableでTABキーおすとフォーカスが消えます。
どこをクリックしてもフォーカスしません。(実際はしてるんだけどカーソルが見えない)
こんな感じ:テストHTML
たぶんhidden(描画しない設定)になったとこにフォーカスが当たってそっからでなくなる?
ような気がします。
描画しない display を 単に表示しない visiblity にすれば問題は解決するけど、
レイアウトの問題もあるので、display のままでなんとかならないかなーと試行錯誤したら
Tabを押したときに強制的にどっかをフォーカスするといいみたいです。
でもどっかフォーカスといって
document.getElementById(‘visible’).focus();
ではだめみたいです。
処理の順番の関係かな。
この場合は
document.getElementById(‘clickable’).focus();
を付け加えればうまくいきます。
12月 25, 2007
ちょっとまえに直リンに変わって騒いでいたので
どうやってるのか気になったので見てみました。
これが実際のHTMLです。
<a href=”****” onmousedown=”return catrd(this,’&l=SIT&sid=2075187116&ssid=2076442857&loc=1&sig=0101cb926a7020f1c40d20a1169d8935&rd=’,”,’site’);”>*****
でこれがjsのソース
function catrd(o,r,f,t){
var pat=/:/;
var href=o.href;
var rbase=’http://srd.yahoo.co.jp/CAT’;
var cbase=’http://dir.yahoo.co.jp/proc/?m=redir’;
var tourl=href.replace(pat,’%3A’);
if(f!=”"){
f=’?frc=’+f
}
if(t!=”site”){
url=rbase+r+”*-”+tourl+f
}else{
var enc=encodeURIComponent?encodeURIComponent:escape;
url=cbase+r+enc(href)
}
o.href=url;
o.onmousedown=”";
return true
}
適当にコメントつけてみると
function catrd(o,r,f,t){
var pat=/:/; //正規表現のパターン代入
var href=o.href; リンクのhref属性を代入
var rbase=’http://srd.yahoo.co.jp/CAT’; //URL代入1
var cbase=’http://dir.yahoo.co.jp/proc/?m=redir’; //URL代入2
var tourl=href.replace(pat,’%3A’); //正規表現で:を%3Aに置き換え
if(f!=”"){//fがブランク以外の例がないのでよくわからんけど置き換えてる
f=’?frc=’+f
}
if(t!=”site”){//内部リンク系だったら
url=rbase+r+”*-”+tourl+f
}else{//外部リンク系だったら
var enc=encodeURIComponent?encodeURIComponent:escape; //encodeURIComponentが使えたら使う、使えなければescape
url=cbase+r+enc(href) //URIエンコードしてURL作成
}
o.href=url; //Aタグのhref属性を書き換え
o.onmousedown=”"; //onmouse属性を空っぽに
return true
}
こんなかんじかな。
ようはクリックしたら動的にURLを変えてカウントしてるだけですが。
これをちょいいじれば
//引数o:this r:クリックカウントのURIに渡したい引数
function test(o,r){
var u=’http://***’; //クリックカウントURI
var e=encodeURIComponent?encodeURIComponent:escape; //encodeURIComponentが使えたら使う、使えなければescape
h=u+r+e(o.href); //URIエンコードしてURL作成
o.href=h; //Aタグのhref属性を書き換え
o.onmousedown=”"; //onmouse属性を空っぽに
return true
}
こんなかんじにして
クリックカウントのファイルからURLに飛ばせれば自分で使えますね。
テストしてないのでエラーでるかも
10月 23, 2007
amchartsの続きですがw
http://neoinspire.net/archives/58
で紹介した amcharts を結構使いまくっていて、
ついでにと簡単に使えるクラスを作ったので上げときます。
Class.CreateGraph.php
追記:200711/07
改良してる方がいらっしゃったので一緒に載せておきます
http://d.hatena.ne.jp/pirokyun/20071104/1194161217#c
(続きを読む…)