7月 30
日付・時刻の整合性をチェックしたい
とあるサイトにて、日付・時刻の値をチェックする処理が必要となる。日付・時刻の入力には、先のエントリーの実務で使える・使ったjQueryプラグイン5選にも書いた、DatePickerとClockPickを使っている。
これらのインターフェースを用いて値を入力する場合、必ず正しい日付が入るので、極端なところ、値の整合性をチェックする必要はない。しかし、このインターフェースと同時に、手動による入力を認めている場合、入力ミス等でおかしな値を入力される場合がある。たとえば…
- 2009,7,30 → 全角文字
- 2009–10-23 → ハイフンが多い
- 2009-2-29 → 閏年じゃないから29日は無い
- 10/2 → 西暦が足りない
- 2009-13-1 → 13月は無い
などなど。
そこでまず、既存のプラグイン等で、日付の整合性をチェックするものが無いか探したのだが・・日付単体でチェックするものを見つけることができなかった。そこで…
>>>>>続きを読む
Popularity: 28% [?]
written by ANN
7月 29
phpにはstrip_tagsという、タグを取り除く関数があるが、特定のタグに挟まれた部分をごっそり削除したい場合、これは該当しない。PEARを探してみたけど、それっぽいのを発見できず。しょうがないので正規表現で書いてみる。(むしろ備忘録)
具体的にどういう時に使うかというと、PHPからの出力時に、
- <style>~</style>タグの中身を全部削除したい
- <script>~</script>タグの中身を全部削除したい
- コメント用の独自タグを、出力時にタグの中身もろとも削除したい。
などなど。テンプレートHTMLの編集時には必要だけど、最終的な出力時にはいらないタグとか。
また、RSSなど、出力先によっては、本文中に含まれるscriptタグが不要な場合などに。
>>>>>続きを読む
Popularity: 19% [?]
written by ANN
7月 28
最近のとある案件で実際に使ってみたjQueryプラグインを5つ紹介します。
それぞれに主観で「実用性」「楽しさ」「難易度」を評点(5点満点)してみたので、参考までにドウゾ。
それぞれにサンプルを付けています。
サンプルのソースを見たい方は、該当部分のiframeからソースを見てください。
>>>>>続きを読む
Popularity: 37% [?]
written by ANN
7月 19
NicEdit – WYSIWYG Content Editor, Inline Rich Text Application
nicEditという、軽量でシンプルなWYSIWYGなJavaScriptのエディタがあるのだが、使っていると謎のエラーに出くわす。
普通に組み込み、ツールーバー内の「右寄せ・左寄せ・中央揃え」など、揃え機能を使おうとすると、Firefoxのコンソールに以下のようなエラーが。
[Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLDocument.execCommand]” nsresult: “0×80004005 (NS_ERROR_FAILURE)” location: “JS frame :: http://js.nicedit.com/nicEdit-latest.js :: anonymous :: line 38″ data: no]
[Break on this error] var nicEditorInstance=bkClass.extend({is…A){document.execCommand(B,false,A)}});\r\n
ぱっと見、JavaScriptのシンタックスやオブジェクトのエラーではなく、firefoxの内部エラーという感じ。
なんと、公式サイトのdemoページでも、同じエラーが発症…。それでいいのか?
nicEdit公式サイトのフォーラムや、Googleで調べた限り、FirefoxのWYSIWIG APIのバグっぽい。
しかも、エラーが発生するのは、Firefox + nicEditの組み合わせかつ、【テキストエリアの1行目に左右中央揃えを実行】という変な条件。
まぁ、バグならバグでしょうがないとして、どういう条件で発生するのか、またどうすれば回避すればいいのかを調べてみた。
極力シンプルなコードにして、エラーが発生する条件を絞り込む。結果、発生する条件だけはなのとか絞り込めた。
…が、これでは、正直、実用に耐えない。
以下、検証コード。(直リンク)
検証を進めていくうちに分かったのだが、nicEdit + Firefox + 1行目の左右揃えで、必ずエラーになるとは限らなかった。
問題がでるのは、2番目のテキストエリアのみ。その違いというのは、テキストエリアを、divでくくっているかどうか、という点のみである。
div以外に、pやtableなど、要するにtextareaの外に要素がある場合、1行目の文字に対し左右揃えを行うとFirefoxのWYSIWYG APIがエラーになるという感じ。
とりあえず現在はここまで調べた。このエラーをどうやれば回避出来るのかは現在調査中。
わかり次第また投稿する。
Popularity: 8% [?]
written by ANN