spam削除支援のGMスクリプトが動かなくなった件
2009-09-04


アサブロ管理画面の話なんだけども、結構前のエントリで「コメントやトラバにspam指定してから一定期間が経過してたら削除のチェックをかってに入れる」グリモンスクリプトてのを掲載した。

で、それからずーっと役に立ってたんだけど、今日ふと気がついたらとっくに期間が過ぎてるのに、まったく削除チェックされる気配が見受けられない状態になってた。

そういや今月のはじめに、管理画面に機能が追加されてたので、「HTMLの構造でも変わったかな?」とか思ってFirebugで見てみたんだけど、input[@type="checkbox" and @name="delmsg"] ってのは変わってない。一瞬「Firefoxを3.5にしたのが原因?」みたいなこと考えたんだけども3.5にしてからも動いてたハズなので、この推察も違うと。

document.getElementsByTagName("input") で列挙した要素をFirebugのコンソールに出力してみたら、なぜかチェックボックスが1件も引っかからない。はて。

で、よくよく考えたら、@name="delmsg" は必ず削除用チェックボックスだったことに思い当たって、以前のスクリプトで

// チェックボックスのリスト
var list = document.getElementsByTagName("input");
ってしてたところを
var list = document.getElementsByName("delmsg");
に変更したら、やっとまともに動いた。ちなみに以前のコードでは、前出のコードでinput要素全部列挙してからわざわざ typeとname属性チェックして処理するかどうかを判断してた。最初からgetElementsByName()だったらそんな処理いらんのにね

しっかし、なんでgetElementsByTagName("input")で引っかからんようになったんだろか。

[JavaScript]
[アサブロ]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット