AdobeサポートデータベースとかのURLを新しいアドレスに変更するJavaScript
「InDesignの勉強部屋BBS保管庫」とかの過去ログの中にはアドビサポートデータベースやアドビサービスデータベースへのリンクがいっぱいあるのですが、このたびのアドビさんのページの改定で今までリンクされていたリンクがきちんとリンクされない…というか単に検索のページにジャンプしてしまうという感じになっているので、しかたがないのでJavaScriptでなんとかすることにした。
過去ログの内容をすべて大本から書き換えても良いのだけれども、とりあえずってことで。
やりたいこと
http://support\.adobe\.co\.jp/faq/faq/qadoc\.sv\\?(...)(...)\\+.*
を
http://www.adobe.com/jp/support/kb/ts/$1/ts_$1$2_ja-jp.html
に変える。
とか思ったらアドビサポートデータベースって4桁なのかよ!
さらにジャンプ先のアドレスが微妙に違うし!
http://support\.adobe\.co\.jp/faq/faq/qadoc\.sv\\?(.)(...)\\+.*
を
http://www.adobe.com/jp/support/kb/cs/$1/cs_$1$2_ja-jp.html
しておきゃいいだろ。きっと。
スクリプト
<script type="text/javascript"> var links = document.links; var myRe = new RegExp("http://support\.adobe\.co\.jp/faq/faq/qadoc\.sv\\?(...)(...)\\+.*","i"); for (var i = 0; i < links.length; i++){ var item = links[i]; var tmp = item.innerHTML; item.href = item.href.replace( myRe,"http://www.adobe.com/jp/support/kb/ts/$1/ts_$1$2_ja-jp.html" ); item.innerHTML = tmp; } var myRe = new RegExp("http://support\.adobe\.co\.jp/faq/faq/qadoc\.sv\\?(.)(...)\\+.*","i"); for (var i = 0; i < links.length; i++){ var item = links[i]; var tmp = item.innerHTML; item.href = item.href.replace( myRe,"http://www.adobe.com/jp/support/kb/cs/$1/cs_$1$2_ja-jp.html" ); item.innerHTML = tmp; } </script>
※innerHTMLで何してんの?ってのは以下の参考ページ参照。Internet Explorer 6のバグ対策のため。
補足
正規表現の最後の「.*」って「[8508]スウォッチについて」にあるみたいな「http://support.adobe.co.jp/faq/faq/qadoc.sv?228284+002+3」みたいな「+3」とかわけのわからんオマケに対応するため。