Nightingale Addonでxhr.responseTextを使用したDOMを作成する場合の注意点
昨日の投稿でDOM操作できないことを嘆いていたのですが、その解決方法がわかりました。
なお、この症状はaddon上でのみ起きます。それへの対処です。
一般的にXHRのresponseTextをDOMへ変換するときは
var dom = document.createElement(“div”);
dom.innerHTML = xhr.responseText;
のようにやるかと思います。
しかしNightingaleやFirefoxのaddon上でこれをやるとXULなオブジェクトになってしまい、ただしくDOMを扱えなくなります(自分なりの仮説)
そのため正しくHTMLDocumentを作ってやれば良いのです。
以下の関数がそれを行うためのものです。
これによってaddon上でもただしく快適にDOMを扱えるようになります!
※このコードはNightingaleとFirefox3.6.x以前のブラウザでのみ動作保証します。それ以降のFirefoxは素直に document.implementation.createHTMLDocument を使いましょう
参考: