HTMLエスケープ周りを修正
- prototype.jsのString.escapeHTML()でダブルクォートがエスケープされないのを知らず、A要素のhref属性値に渡してしまっていた
- document.titleにString.escapeHTML()の結果を渡してしまっていた
1番目はString.prototype.escapeHTML()の上書きで対処しました。これが良い方法かどうかは分かりませんが、要件は満たせているので、ふたたび気になるまでは気にしないことにします。
Object.extend( String.prototype, { escapeHTML: function() { var div = document.createElement('div'); var text = document.createTextNode(this); div.appendChild(text); return div.innerHTML.replace(/"/g, '"'); } } );
2番目は簡単で、エスケープ前の文字列を渡すよう修正しました。勝手にエスケープされるとは知りませんでした。というか、ちゃんとテストしてからリリースしましょう>俺