読者です 読者をやめる 読者になる 読者になる

ochalog

Ruby と MediaWiki が好きな電子・情報系の学生のブログ。

Hiki2MediaWiki for SRW Wiki 2.2.3 をリリースしました

Hiki2MediaWiki for SRW Wiki 2.2.3 をリリースしました。

変更点は、直りきっていなかった IE8 以下で変換できない問題の修正です。スパロボ Wiki 内で GGG さんから状況を報告していただきながら、修正作業を進めました。協力していただいた GGG さんには厚く御礼申し上げます。

すべての DOM 要素のスナップショットの取得

今回問題になっていたのは、すべての DOM 要素のスナップショットの取得するという箇所。修正前は『JavaScript 第6版』の p. 400 を参考にして

var nodes = document.getElementsByTagName('*'),
    elements = Array.prototype.slice.apply(nodes, []);

のようにしていた。しかし、IE8 以下では HTMLCollection や NodeList を JScript のオブジェクトとして認識しないらしい(「JavaScriptのDOM Core基礎 - 三等兵」より)ので、エラーになる。仕方がないので、ループを回してひとつひとつの要素を配列にコピーするようにした。

var nodes = document.getElementByTagName('*'),
    len = nodes.length,

    elements = [],
    i;

for (i = 0; i < len; i += 1) {
    elements.push(nodes[i]);
}

このようにすれば IE8 以下でも大丈夫だった。