2010/12/01

IE で google-code-prettify を使うと改行されない

このサイトでは google-code-prettify を利用してコードに色をつけています。
google-code-prettify は非常に便利なのですが、IEで表示すると改行されないという問題があります。(使用しているバージョンは prettify-21-Jul-2010.zip)

どうも、過去のバージョンでは表示には影響がなく、コピーしたときに改行が反映されないという問題だったようですが、バージョン21では、表示さえ崩れてしまいます。
さすがにこれでは困るので、google-code-prettifyを適用したソースをIEでコピーしたときに改行を反映させたい を参考に prettify.js の 1458行目を以下のように修正しました。

cs.innerHTML = (/*@cc_on!@*/false) ? newContent.replace(/\x0D\x0A|\x0D|\x0A/g,'<br />\n\r') : newContent;

やはり、バージョン21では<br />タグは使わず改行コードのみ出力しているようなので、置換の正規表現を修正してやる必要がありました。
また、コピーしたら改行がなくなる問題は解決していません。onbeforecopy というイベントを使えば解決できるっぽいですが、IEのためにそこまでするのもねぇ…
コードをコピーして使いたい人 = プログラマー = IEなんて使ってない
ということで、対応しないってのはどうでしょう?無理やりすぎ??んー

ちなみに、Google としても「仕様を満たしていないブラウザなんぞサポートしない」ってことなんでしょうか?
気持ちはわかります。超わかります。
でも、まだまだユーザの多いブラウザなので、正式対応してほしいものです。

0 件のコメント: