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の
実行が出来るようになります。