spam削除支援のGMスクリプトが動かなくなった件 ― 2009年09月04日 02時35分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")で引っかからんようになったんだろか。
コメント
トラックバック
このエントリのトラックバックURL: http://dara-j.asablo.jp/blog/2009/09/04/4561162/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。