rNoteの記事の中で新規ウィンドウをJavaScriptで開くなどをするときに
リンク部分に/が入ってしまい、意図しない動きやJavaScriptのエラーが
発生してしまいます。
これを回避するにはrnote.phpに以下の修正を行うことで回避できます。
修正個所はrnote.phpの約155行目で、青字のコードを追加すればOKです。
このコードでは../の先頭に/が付いてしまうバグも修正しています。
151: // Relative path -> Absolute path
152: function ChangeFullUrl(&$a){
153: SplitPath($_SERVER['PHP_SELF'],$base,$tmp);
154: $a = str_replace(REPLASE_CHAR,'',$a);
155: while(preg_match('/<(?:a|img|link).+?(?:href|src|url)="(.*?)".*?>/s',$a,$tmp)){
156: if(preg_match('/^(http|ftp|mailto|javascript|\.\.\/|\/)/s',$tmp[1])){ // exclude
157: $a = str_replace($tmp[0],str_replace('<',REPLASE_CHAR,$tmp[0]),$a);
158: }else{
159: $repstr = preg_replace("/(href|src|url)=\"/s","\\1=\"".$base,$tmp[0]);
160: $a = str_replace($tmp[0],str_replace('<',REPLASE_CHAR,$repstr),$a);
161: }
162: }
163: $a = str_replace(REPLASE_CHAR,'<',$a);
164: return;
165: }
この実装で<a href="javascript:~">のようなJavaScriptの
実行が出来るようになります。




