onclickをサポートしたい
あらゆる要素に潜むonclick属性を取り出してリンクにしておきたい。
<img src="example.png" onclick="javascript:open-window('http://www.rubyist.net/~rubikitch/')" alt="example">
なんてのがあったら、
<a href="javascript:open-window('http://www.rubyist.net/~rubikitch/')">[onclick]</a><img src="example.png" alt="example">
みたいにしてくれればjavascript:なURIはLocal CGIに任せられる。自作フィルタープロシキでこのように設定した経験から、これがあるだけでもだいぶw3mの行動範囲が広がることがわかった。
どうしてもサポートしたいのだが、どうもうまくいかん。file.cのHTMLtagproc1でタグ分岐のswitch文の前にprocess_onclickを置いてみた。それだとtable内のonclickが処理されない。外のは大丈夫。table内はfeed_tableに渡されて、レンダリングまでやってしまうようだ。table.cを覗いてみたが、process_onclickを置くべき位置がつかめなかった。
void process_onclick(struct html_feed_environ *h_env, int cmd, struct parsed_tag *tag) { char *onclick = NULL, *q, *label="[onclick]"; Str atag = NULL; parsedtag_get_value(tag, ATTR_ONCLICK, &onclick); // fprintf(stderr, "str=%s onclick=%s\n", parsedtag2str(tag)->ptr, onclick); if (onclick == NULL) return; q = html_quote(onclick); HTMLlineproc1(Sprintf("<a href=\"javascript:%s\">[onclick]</a>",q)->ptr, h_env); }
追記:なんとかtable内onclickのレンダリングまではできた。あと少し。
追記:いちおうできた。しばらく使ってみた後公開予定。