JavaScript

うーん

2006/10/11 水曜日 - 11:08:36 by webmaster

function GMGeocoding() {
    this.content = document.getElementById("content");
    this.regex = /\<!-- googlemap:({.*}) --\>/;
    this.matches = this.content.value.match(this.regex);
    this.geocode();
}
GMGeocoding.prototype.geocode = function() {
    if (!this.matches) return false;
    ......
}

こんなコードをフォームのsubmitイベントから呼び出して処理をさせようと思ったら動かない。
「this.geocode is not a function」とか言われる。
何でかと思って調べたら、ここで呼び出してる this が自分自身を参照していなかたった。呼び出したフォームのDOMオブジェクトを参照してる。
うーん。
と、思ったけど、致命的な勘違いをしてるような気がする。いま気がついた。
やば。

非同期処理をシーケンシャルに

2006/10/10 火曜日 - 23:11:38 by webmaster

非同期処理をシーケンシャルに扱うために
自分だけじゃどうにもならないことを既にこうやって形にしてる人がいるんだよね。
もっとがんばらんと。

AjaxIME

2006/10/10 火曜日 - 19:53:19 by webmaster

Ajax IME: Web-based Japanese Input Method
すごくない?

wp-googlemaps開発中その2

2006/10/10 火曜日 - 17:32:52 by webmaster

記事投稿時にgeocodingさせようと思っていろいろやってみたけれど、問題の回避方法が見つからない。
1. 記事投稿(フォーム送信ボタンをクリック)

2. onsubmitイベントで処理開始

3. geocodingして記事中の住所文字列に緯度経度情報を追加

4. フォーム送信
という流れで処理をしたいのだけれど、
submitイベントを生かしておくとgoogleからの非同期通信が完了する前にフォーム送信されてしまうし、
イベントをキャンセル(preventDefault)してしまうとこんどは変換後のフォーム送信が出来ない。
うまい方法は無いのだろうか?
とりあえずの逃げとして、記事入力中にkeyupイベントで即時変換をかけたけれど。

wp-googlemaps開発中

2006/10/09 月曜日 - 15:08:36 by webmaster

記事中のコメントタグから住所を抽出してgooglemapで表示させるだけなら簡単に出来るのだけれど、どうせなら他の記事中のポイントも併せて表示したい。(そっちの方がいろんな使い方が出来そう。)
どのタイミングでgeocodingさせるかが悩みどころ。
地図表示時に登録済みの全住所を投げるのはスマートじゃないと思うので、出来れば投稿時にgeocodingまで済ませたいけれど、どう処理しよう?
記事投稿のonsubmitで処理すればいいのか。
簡単に出来そうだと思って始めたのはいいけれど、ちょっと面倒になってきた。

GoogleMaps API

2006/10/05 木曜日 - 21:08:06 by webmaster

WordPressにGoogleMapを組み込もうと思っていろいろ実験中。
プラグイン化を目標。
Google Maps API リファレンス
geocodingがまだ日本国内で使えないのでGoogle AJAX Search APIを使って緯度経度情報を取得する必要がある。
面倒だなぁ、と思ったら本家にあるじゃん、便利に使えそうなのが。
Using the GSmapSearchControl Solution
これを組み込めばなんとかなりそう。

flashからjavascript

2006/09/12 火曜日 - 17:13:58 by webmaster

flashからjavascriptを呼び出すだけなら、getURLで充分なんだけど、その結果をflashに戻すとなるとちょっと面倒だった。
flashplayer8から導入されたExternalInterfaceを使うとメチャクチャ簡単。
ActionScript:

import flash.external.*;
var JsFunc:String = "hello";
var param:String = "This message was sent from flashmovie.";
var ext:String = ExternalInterface.call(JsFunc, param).toString();

JavaScript:

function hello(param) {
    alert(param);
    return "This message was sent from Javascript.";
}

これだけで、extに「This message was sent from Javascript.」が返ってくる。
あとはこれをどう使うか。そっちの方が問題だ。

textareaエディタ

2006/07/03 月曜日 - 20:58:52 by webmaster

テキストエリアをWysiwygなエディタにしてくれるスクリプトを探していたら、灯台下暗し、WordPressに組み込まれてるのがあるやん。
http://tinymce.moxiecode.com/

「KB912945」手抜き対策最終版?

2006/06/23 金曜日 - 10:31:04 by webmaster

最終調整かな?(笑)
Dreamweaver8.0.1には対策パッチが当たって自動書き換えをやってくれるのだけれど 、これに触発されて前のバージョンを修正してみた。
変換対象タグを<noscript>でマスクするんなら、その中身を読み出して処理すればいいんじゃないの、という発想。HTMLコーディングルールに抵触するかもしれないけれど、結果的に問題なかったので、公開。
この修正で外部スクリプトファイルが固定され、同じフォルダにjsファイルが溢れません。以前のバージョンはdivタグを追加してた関係で文書構造が変わり、デザインが狂う場合があったが、それも解決。
コメントアウトした対象タグに反応してスクリプトエラー起こしてたのも、解決。さらに、処理済のファイルに変換対象オブジェクトを追加したものを再処理可能に。
これで最後かな。
http://mikke-mon.com/tagconverter_v5.php