ただの備忘記録

忘れないように記録を残します。忘れるから記録に残してます。そして、その記録が役立つといいかな。

JavaScript関連ブックマーク

2008年11月16日 | JavaScript

http://andyss.blog.so-net.ne.jp/2007-09-05

JavaScriptのライブラリを紹介するブログ

http://fnya.cocolog-nifty.com/blog/cat4077748/index.html

Ajax/JavaScriptライブラリのまとめ

 http://www.openspc2.org/JavaScript/Ajax/Library/index.html

古旗さんのサイト Ajaxライブラリ一覧


JavaScriptで、HTMLのテーブルを組み替えるフォームを更新

2008年11月15日 | JavaScript

先日、

タグで出来た表を入れ換えるスクリプトを作りました。これは表の行と列の軸を入れ換えるというものでした。

基本仕様は、<table>タグを読込、<table>、<caption>、<tr>に分割します。<tr>が1行ですので、更にその中に<td>もしくは<th>が入っています。
各行から1つ目の枠(<td>か<th>)を取ってきて、新しい1つ目の行を作ります。

逆に1つ目の行から枠を取り出しながら、新しい各行へと割り振るやり方もあります。しかし、これが非常にややこしいです。一番問題になるのは、colspanとrowspanを設定して枠を繋いでいる場合です。

タグは行の頭から処理を行わないと、どんな表になるか判らない構造になっています。colspanやrowspanがあると、その部分は枠の情報が1つしかないため、統合された枠で情報を共有する必要があります。そのために、それを引き継ぎながら処理しなければなりません。

どちらにしても、古い表と新しい表が頭の中でこんがらがりながら作ることになってしまいました。
下の方法だと、スクリプトがかなりすっきりするのですが、引き継ぎの処理がうまくいかなかったので、諦めました。多分、前者の方法で悩みすぎて気力がなくなっていたのだと思います。

そこでふとアイデアが出ました。行の入替ができるなら、回転もできるのではないかと。
というのも、行列を入れ換えて、上下を入れ換えたら回転したように見えたからです。
しかし、上下の入替は少々やっかいです。これも統合された枠のことを考えなければなりません。でも、もっと簡単な方法がありました。左右の入れ換えです。
左右の入れ換えだったら統合された枠も関係ありません。そのまま後ろから読み取れば、綺麗に表になるのです。

これで行列と左右の入れ換え処理ができました。あとは、この2つのルーチンを組み合わせるだけでした。2つを同時に行うと回転処理になります。
次に左右の入れ換えの後、回転処理を2回行うと、上下の入れ換えができました。

この4つの機能をパネルで選べるようにしましたので、表をどんな向きに、どんな並びにでも変更できるようになりました。
最初から回転処理を作ろうと考えていたら、こううまくは行かなかったと思います。ある意味怪我の功名という感じです。

あと、オプション設定で行頭のtabや二重改行を取り除く機能を用意しています。
これがないと、元々tabを使って行頭の位置を整形していた場合に、これらが綺麗に適用されません。行数が変化するので、対応することができないので、削除して綺麗に見せます。

http://www.shurey.com/js/works/table_rotation.html


JavaScript作業メモ

2008年11月15日 | JavaScript
//デバッグ用(タイトルに状況を表示)
document.title = s+"/"+(new Date).getSeconds();
//s=デバッグしたい変数

//デバッグ用グローバル変数
debug = "";
//画面をダブルクリックするとdebugを表示
document.ondblclick = function() {alert(debug);}
//デバッグしたい場所で位置情報と変数などを追加
debug += "step1:"+s+"n";

//デバッグしたい関数をループ内で見ながら、停止もできる
var bool = confirm(count);
if (bool) {break;}

//文字列を整数にする
parseInt("02") -> 0
//二桁の月や日付を処理するのに使うと正しく処理できないため
//eval("02")を使うと良い

//同じように動作する
//document.getElementById("id").innerHTML
//document.all["id"].innerHTML
//allは使わない方が良い。
//FirefoxではinnerTextが使えないのでtextContentを使用

//document.getElementByName("name")
//IE7、Firefoxともに動作しない。

//document.onmousemove = function() {getRun();}
//は省略して
//document.onmousemove = getRun;
//と表記できる。

//ブラウザの分岐
if (document.all) {c_browser = "E";}
//○IE
//×Firefox、Safari
else if (document.layer) {c_browser = "F";}
//○firefox
//×IE、Safari
else {c_browser = "S";}

//gooブログにURLを記述する場合の注意点
gooブログでは「JavaScript」の文字を含むリンクを作成しようとすると、小文字に変換し更に全角に変換してしまいます。
これはスクリプトを埋め込まれないための対処と思いますが、URLまで変更してしまうのでは困ります。
エスケープ文字を使うことで回避していましたが、対応されてしまいましたので、転送するHTMLを設置することにします。
http://www.shurey.com/Soft/js-trans.html

FORMの名前に「-」を使うとエレメントの行でエラーが発生する。

//二重の改行を1つにする
s.replace(/[nr]{2,}/g,"n")

娘の靴を買う

2008年11月13日 | 娘小2
娘の靴がボロボロになっていたので買いに行った。
次の日は彦根へ遠足で行くことになっていた。

娘「明日は新しい靴じゃなくて、いまので行くわ。新しい靴は足が痛くなったりするから、あかんねんて」
私「そうか。靴擦れやな」
娘「だから、これでいくわ」
私「新しいの買ったら、それどうする?」
娘「まだまだはけるで」

店に入って運動靴を見る。

私「これ良いんちゃうか」
娘「おお!これ足が速くなるやつや」
私「瞬足やな」
娘「明日これはいていくわ」

店に入る前と言ってることが違う娘であった。

JavaScriptで、タグの書式を統一するためのフォーム

2008年11月08日 | JavaScript

タグ名、オプション名、オプション値の囲い文字を統一するための変換ツールを作成しました。

先日作成したテーブル変換にこの機能を載せようと思ったのですが、汎用性を考えて別途作成しました。
HTML文書からタグを識別し、タグ名とオプション名を小文字または大文字に統一、囲い文字を「"」または「’」に統一することができます。

http://www.shurey.com/Soft/JS/works/tag_convert.html


MacBookにWindows VISTAを入れてみた

2008年11月07日 | 日記
MacOS 10.5に付属するBOOTCAMPを使って、Windows VISTAを入れてみました。

アシスタントツールを起動するとボタン1つで32GBをHDDから、別パーティションにしれてくれます。もちろん、変更可能です。
数分待てば、デスクトップにHDDのアイコンが1つ増えます。

次にVISTAのインストールディスクを入れます。
当初XPを入れる積もりだったのですが、手元にあるディスクはSP1のもので、これは受け付けてくれませんでした。メッセージとしてSP2以降でないと受け付けないということでした。
VISTAのディスクを入れると再起動してインストールが起動します。
インストールのドライブを選択する画面がでてきて、正しいフォーマットのドライブが認識できないと言ってきます。新たに作ったパーティション(ドライブとして表示)を選んで、オプション設定からフォーマット(初期化)を選びます。
初期化は一瞬で終わるので、あとは使えるようになったパーティションを選びます。
これで、あとは待つだけです。

VISTAのインストールが終わっても、有線LANは使えません。グラフィックカードやbluetooth、無線LANのドライバもない状態です。
MacBookに付属の1枚目のディスクを入れると、その中にBOOTCAMP追加インストールの項目があります。
それをインストールすれば無事に、見事に、VISTAがMacで動くようになります。

あとは、FFXIを入れてみましたが、アップデートに時間がかかったので、そのまま寝ました。

設定項目など、思い出しながら書きましたので多少名称は違うかもしれませんが、流れは間違いないので、参考になるかと思います。
MacBookに手順書がPDFで入っているのですが、英語版なのでさっぱりわかりません。
オンラインで調べても、BOOTCAMPの設定については、βや正式版直後の記事が多く、最新OSでのVISTAの導入記事が見つからなかったのでメモとしても書いておくことにしました。

映画「レッドクリフ」 Part.I

2008年11月05日 | 映画
三國志の赤壁の戦いを描く映画を観てきました。
一応中国映画ではありますが、監督がハリウッドでも活躍しているジョン・ウー監督なので映像もとても綺麗です。

ストーリーは若干アレンジが加わっていますので、純粋な歴史物というよりも、娯楽大作として観るのが良いでしょう。

本編に入る前に、どうやら日本側で作った状況説明の映像があります。これが非常に陳腐。中国の地図の上で文字が動くだけ。「曹操」という文字が「劉備」という文字を追いかけて動いてました。
これは完全に萎えます。テンション下がります。映画会社として恥ずかしい出来映えです。

この映像が終わるとようやく本編に入ります。
状況は既に曹操が劉備の軍勢を新野から追い立てているところから始まります。
趙雲が劉備の子を助けに戻る名場面はありますが、長坂橋で張飛が活躍する場面は関羽が活躍していました。
孔明が孫権の元を訪れ、周瑜と友人のようになります。そしていよいよ赤壁で曹操を迎え撃つことになります。
その前哨戦として、曹操軍の騎馬部隊を迎え撃つエピソードが作られていて、これが今回の後半の見所になっています。
これが終わるといよいよ曹操の水軍が赤壁に現れ、両陣営の開戦準備が整ったところで映画は終わります。

エンドロールの直後にPart.IIの予告編があります。

主要人物としては、曹操、劉備、関羽、張飛、趙雲、孫権、魯粛、周瑜が登場しています。
ここに甘興という架空の人物が重要な役として出てきますが、これは甘寧がモデルになっています。どうして名前を変更する必要があったのでしょう。
これら主要人物には登場時に名前とふりがなが表示されるようになっていました。
更に孔融・蔡瑁・張允・華佗・小喬が登場しますが、これ以外の人物は誰がだれだかさっぱりわかりません。エンドロールには色々名前がありましたが、ストーリー上重要でない人物は省略しているようです。

モクモクファーム

2008年11月02日 | 旅行

自治会子ども会の行事でモクモクファームへ行ってきました。
みんなでソーセージ作りをしてきました。2時間ほどで、ミンチと材料を練り、腸詰めをし、洗い物もしてきました。
やっぱり自分たちで作った物は美味しいですね。

お昼は園内でバーベキューをしました。
散策する時間は多くなかったけど、早めに帰って来れました。

娘は到着と同時に頭痛を訴え、そのまま寝込んでしまいました。