innerHTMLでスクリプトする為のバッドノウハウ

ところで jQuery#html()にscriptを突っ込んでもJSを実行してくれます。document.writeを利用するとひどいことになりますけど(--; $("#foo").html("<script>alert('Hello');<"+"/script>"); innerHTMLでscriptする為の方法 document.getElementById("foo").innerHTML …

Kanasan.JS第二回サイ本読書会のレポート

去る1月14日に、prototype.jsのコードリーディングとサイ本の読書会を交互に繰り返すKanasan.JSの第二回サイ本読書会に遊びにいってきました。 Lightning Talks レポートは各所で挙がっているいますので割愛。スピーカ一覧です。 http://groups.google.co.jp…

valueOfとtoStringの列挙

IEの場合 for(i in {valueOf:function(){},toString:function(){}}{ alert(i); }; IEでは上記のようにDontEnum属性のものを上書きしてもDontEnumが継続するというバグがあります(仕様?)。つまり、上記の場合では、valueOfやtoStringがalertされないというこ…

JSmarty.Pluginオブジェクトついて

JSmartyにはJavaScriptでSmartyする為にJSmarty.SystemやJSmarty.Templatecオブジェクト存在していてその辺の仕様に関するエントリです。一番、便利であろうJSmarty.Pluginの仕様について。 JSmarty.Pluginで扱えるJSファイルについて これは2パターン存在し…

0.5.0とjQueryプラグイン

あけましておめでとうございます。JSmartyを0.5.0版リリースしました。0.4.1のバグフィックスメインです。jQueryのプラグインも同封しております。 呼び出し方の変更点 <script type="text/javascript" src="JSmarty.js"></script> <script type="text/javascript" src="JSmarty/Compiler.js"></script> と記述していたのが以下のような記述でOKになります。 <script type="text/javascript" src="JSmarty.js?Compiler">…

jQueryでテンプレート処理

jQueryプラグイン jQueryでテンプレート処理を行ってみたくてjQueryのプラグイン作成の勉強がてらテンプレート処理プラグインを制作してみました。テンプレートエンジンはお馴染みのJSmartyです。 利用例 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="JSmarty.js"></script> <script type="text/javascript" src="JSmarty/Compiler.js"></script>

JavaScript Archive Network復活。

http://d.hatena.ne.jp/shogo4405/20071124/1195904976 でかいたJSANのドメインがあれれっ?な問題点。今日、アクセスできるようになっていること確認できました。アドレスは通常通りhttp://openjsan.org/です。これを機にJSANに盛り上がって欲しいと思う今…

イーモバイルによるインフラ構築

去る12月08日(土)にインフラ要因としてKanasan.JS#2に参加させていただきました。そのときネットワーク環境構築したのでその際のメモです。 必要なもの ノートパソコン イーモバイル 無線LAN親機(バッファロー) 有線LAN1本。 有線LANについては当日忘れてし…

PHPでクロージャ?

PHP

Piece Network 12月1日(土)にPiece Project主催のPiece Networkによってきました。ちょっと遅れていったので「PHPマニュアルの読み方 高木正弘さん」の途中からの参加でした。PHPのドキュメント作成はPHDに変わったよとか。最近、翻訳のコミッタの活動が停滞…

JavaScriptでArray.fill

Array.fill 配列の初期値を指定する方法の処理速度検証 (Kanasansoft Web Lab.)について。 Arrayをnullで初期化したい以外ではこれで要件を満たせるのかな…。速度はベンチマークをとっていないので分からない。evalは生理的に嫌いなのでnew Funciton(Functio…

google groupを開設

グループ開設 バグレポートや質問コメントの管理が大変になってきたのでGoogle グループを開設してみました。更新情報とかここの日記でもあんまり発信していなかったのでせめて更新情報くらいはメーリングリストには投げようかと考えています。 フィード と…

object=clone(object);

世の中にはdeep cloneの需要がある 僕もある。某ライブラリで実装せにゃならない。スマートな方法は思いつかず。永遠ループでまわしつづけています。この前見つけたネタのエントリ。 404 Blog Not Found:javascript - お伺い - Object.prototype.clone() htt…

JSAN.js消滅にみる自作ライブラリ

追記 12月14日時点アクセスできること確認いたしました。http://openjsan.org/復活という奴でしょうか。 消滅ですか??? JSAN消滅 - 檜山正幸のキマイラ飼育記の記事で知ったのですがJSANが消滅したそうで驚きしましたCPANみたいなスタンスだったんで僕も好き…

kana.js

最新版はこちら http://code.google.com/p/kanaxs/ はじめに 平仮名を片仮名にしたり。半角英数字を全角英数字にしたり。全角カタカナを半角カタカナに変換するJavaScriptです。String.prototypeを拡張していますのでString.prototype拡張が嫌いな方はPHPのm…

fixed.htc

はじめに fixed.htcはIE6でposition:fixedが利用できないのを修正するスクリプトです。IE7ではposition:fixedが対応しているのでIE7では適応されないようになっています。 注意点 IEの描画で位置計算を都度行っているので環境やマシンスペックとかでちらつき…

HTMLComponentで標準モードか互換モードを見分ける方法

.htcの中でdocument.compatModeを使うと互換・標準モードに関わらずBackComponentになってはまる。呼び出し元HTMLの標準・互換モードを探し当てるにはwindow.document.compatModeを使えばいい。あとdocument.compatModeは互換・標準モードを確認するのに使い…

setExpression

style.setExpressionは知っていたけどElement#setExpressionも使えるのね。IE限定でいまいち使いどころが分からない(--; var foo = document.getElementById('foo'); foo.setExpression('innerHTML','new Date().getTime()');

JSmarty 0.4.1リリース

久しぶりの更新です。0.4.0ではないのは先週くらいにアップしたリリースした0.4.0にバグあった為そのフィックス版ということで0.4.1になっています。最後の大幅な仕様変更(テンプレート関係はそのまま)かなと思っています。 http://code.google.com/p/jsmart…

IE6でposition:fixedがうまくいかないのをfixするhtc

to-Rの西畑さんの講演を聞いてIE6でpositonfixedが動かないのを思い出した。それでそれをどう回避するかというと以下みたいにwindow.onscrollのイベントが発生したときに毎回毎回位置を計算して描画する。このコードって実は問題で描画がスクロールの速度に…

カタカナ⇔ひらがな/全角⇔半角変換(カタカナ対応)

最新版はこちら http://code.google.com/p/kanaxs/ ひらがな⇒カタカナ String.prototype.toKatakanaCase = function() { var i, c, a = []; for(i=this.length-1;0<=i;i--) { c = this.charCodeAt(i); a[i] = (0x3041 <= c && c <= 0x3096) ? c + 0x0060 : c…

全角/半角カタカナ編。失敗。

カタカナの全角→半角を難しく変換するコード。やっている最中に別の方法思いついたので途中でポスト。ひらがな→カタカナは簡単なのでひらがなを半角カタカナに変更するんだったらひらがな→カタカナ→半角カタカナが一番かも...。 コード(途中...) 関数はバギ…

JSで半角→全角変換/日本語はめんどい

よく住所とか登録してくださっていうフォームで、英数字はついつい条件反射的に半角を入力してしまってあとで全角じゃないと駄目だったorz...っていうことがよくあります。 そんなときは簡単なブックマークレット使って自動修正しています。そのブックマーク…

VistaでFileSystemObjectとGetFolder

var fso = new ActiveXObject('Scripting.FileSystemObject'); var dir = fso.GetFolder('C:\Hoge'); GetFolderがバギーなのか私の環境が駄目なのかとりあえずGetFolderを使った時点で落ちる。fso.GetFolder()でも落ちる。う〜ん。

Window Gadgetを制作したときのメモ

Gadget概要 http://twitter.com/shogo4405/の過去ログを任意の数取得してフライアウト(Gadgetの横側に飛び出してくるWindowのこと)に表示するGadgetです。(任意の人のidを入力してその人の過去ログひっぱてくるGadgetのほうがはるかに面白い気が…。) Gadget…

YUI CompressorをANTから利用できるようにする。

はじめに 先日YUI式JavaScript圧縮ツールが公開されたのを見て、色々と遊んでいたわけですが検証とか遊びならいいですが…毎回毎回Javaコマンド叩いて圧縮するのもめんどくさいなと思っていました。1つや2つならANTを利用してJavaタスクを書いて自動化します…

HTML Componentメモ

methodの追加 hoge.htc <public:component> <public:method name="doFoo" /> <script type="text/javascript"> function doFoo(){ alert("FooFooFoo"); }; </script> </public:component> JavaScript var hoge = document.getElementById('hoge'); hoge.doFoo(); // FooFooFoo 補足 name属性はJavaScriptの関数名と同じにしてあげる必要があります。 sett…

behaviorとaddRule

IEでHTMLElement.prototypeっぽい動作するものを考えているなかで生み出された副産物です。document.styleSheetsのaddRuleとbehavior:expressionをつかってdiv要素のheaderクラスに所属するidをアラートしています。 <html> <head> <style id="behavior"></style> <script> function showElementId(e){ alert(e</head></html>…

Safari3で楽になったHTMLElement Prototyping

今までのSafariではHTMLElement Prototypingをするのに色々とハックする必要がありましたがSafari3からは直球でHTMLElementが実装されていてハックできます。 実装されているHTMLElement系のオブジェクト JavaScriptで機械的に書き出したので漏れがあるかも……

Safari3にinsertAdjacentElementが実装されている。

Safari3対応のinsertAjacent.jsをつくろうかなと思って調査したところinsertAdjacentElementは既に搭載されてました。insertAdjacentHTMLとかinsertAdjacentTextは現段階では実装無。 サンプル // true alert('insertAdjacentElement' in HTMLElement.protot…

連想配列や配列をクエリする。

予備知識 クエリで配列や連想配列を送りたい場合以下の形式でリクエストしてあける。以下のサンプルはURLエンコード前でつ。 // 1.配列ですよ index.html?hoge[]=10&amp;hoge[]=20 // 2.連想配列ですよ index.html?hoge[foo]=foo&amp;hoge[bar]=bar上記1のク…