javascript

TracWiki で手軽に br マクロを入力する

「TracWiki で [[br]] を入力するのがめんどくさい」というのを聞いて、「そういえばあまり Wiki (TracWiki に限らず) であまり物理改行は使わないなぁ…」と思いつつも Shift+Enter で [[br]] を挿入するような javascript でも仕込んでおけばいいんじゃなか…

Opera の WYSIWYG モードでの Enter キーが 挿入にならない

追記: Opera 9.5.1 を試したらちゃんと Enter キーで <p> 挿入になってた。Shift-Enter も <br> 挿入でまともでした。Opera 9.5 よりも前のバージョンの WYSIWYG モードは buggy らしい。Rich HTML editing in the browser: part 1 - Opera Developer Community 9.5</p>…

Firefox の WYSIWYG モードで execCommand('inserthtml', false, '') が効かないときがあるのに対処する

tracwysiwyg では改行アイコンを実現するために ↓ のようなコードを実行するようにしていました。 function() { contentDocument.execCommand('inserthtml', false, '<br>'); } なのですが、Firefox の場合カーソル位置によっては <br> が入らないことがあります。WY…

Safari の WYSIWYG モードで Shift-Enter が効かないのに対処する

tracwysiwyg を Safari から使っていて気付いたのですが、Safari の WYSIWYG モードでは Shift-Enter を入力しても改行(<br>)が入りません。これ自体は Safari のバグの模様。Bug 16973 - Shift+Return doesn't produce BR elements in a contentEditable area.…

Number#toString(36) でランダムな文字列を生成する

JavaScript で n 進数を扱う: Days on the Moon前に ↓ のようなコードを書いたのを思い出した。 function random_string(length) { var string = ""; while (string.length < length) { string += (Math.floor(Math.random() * 60466176) + 60466176).toStri…

CSS のルールを javascript から動的に追加する

display:none にしておいた div の innerHTML に '<span>&nbsp;</span><style type="text/css">' + css + '</style>' を代入する方法もありますが、それ以外の方法です。追加する場合。 function addStyle(css) { var style = document.getElementById("dynamic-style"); if (!style) { style = document.…

(new Template("")).constructor != Template になってはまる

prototype.js にある Template クラスを使って次のようなコードを書いてたら、ちっとも真にならなくてはまりました。 function showMessage(message, options) { if (message.constructor == Template) { message = message.evaluate(options); } alert(mess…