JavaScriptの最近のブログ記事

テキストエリア挿入支援処理などを行うjavascriptの処理時に発見したこと。

Vista+IE8の環境で「getElementById("moji")」とかやるとなぜかエラーになる。

内容は「オブジェクトがありません」とのこと。


無いわけない。

ちゃんとid属性もname属性も指定して、値も一緒にしている。


ためしに、

getElementById(moji)

とやったら、「'moji'は定義されていません」というエラー。
まあ、当たり前だわな。

しかし、

getElementById('moji')

とやると、うまくいく。


IE7の時はこのエラーが出なかったような記憶がアルのだが・・・

協調性を無視し我が道をいくMicrosoftに感謝。


しかし何回も何回もソースを見直してたのがバカみたいだ。


最近はどの言語でも"moji"と書いたら文字列で処理するだろが。普通は。
よく使うのだが、なぜか忘れやすいのでメモ。


<html>
<head>
<script type="text/javascript">
 var count;
 function BoxChecked(check){
  for(count = 0; count < document.form1.checked_user.length; count++){
   document.form1.checked_user[count].checked = check;
  }
}
</script>
</head>
<body>
<form name='form1' action='' method='post'>

全てチェックを
<input type='button' onClick='BoxChecked(true);' value='入れる'>
<input type='button' onClick='BoxChecked(false);' value='外す'>

<input type='checkbox' name='checked_user' value='1'>
<input type='checkbox' name='checked_user' value='2'>
    ・
    ・
    ・

</form>
</body>
</html>
これに関していいものはないかと探していたら、素晴らしいスクリプトを
見つけた。
とても便利なのでかなりブックマークされてるようだ。

→ http://painter.mypets.ws/~raelian/tag/enclose.html

ボタンを押すだけで、テキストエリアのカーソルの位置に任意の文字が、ポンと
挿入できるスグレモノ。


さっそくMIlkyStepにも取り入れようということで・・・イタダキ。

基本的にHTMLタグとかスタイルシートとか編集する目的なので、文字をドラッグして
反転した場合は、実行すると、選択した文字列の前後でタグで挟むような仕様に
なっている。

これを、選択した文字を残さずに、挿入文字にそのまま置き換えるには、
「textarea.js」61行目あたりの、

el.value=click_s + s + click_m + e + click_e; を、
     ↓
el.value=click_s + s + e + click_e;

とすることで対応可能。


また、タグで挟むんじゃなくて、ただ単にある文字だけを挿入したい場合、
ボタンの要素指定時に、

<input type='button name='insbtn' value='挿入' onclick=\"enclose('hogehoge','');return false;\">

などとして、関数に渡す第2引数を空にしてやればOK。

第2引数を指定しないと、undefinedが返されるので注意。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちJavaScriptカテゴリに属しているものが含まれています。

前のカテゴリはHTMLです。

次のカテゴリはLinuxです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.22-ja