プロが教えるわが家の防犯対策術!

2分割のフレームで名前はmenuとmainとします。
menu画面で文字列を入力させ、main画面内の文字列を検索する機能を作っています。
ボタンを1回押したときに最初に一致する文字列が反転するところまでは出来ます。
2回目以降に押したときに次に一致する文字列を反転させたい。
Netscapeでは出来ていますが、IEでの方法が分かりません。
ご教授お願いします。


'menuのソース

<form onsubmit="return myFindText(this.key.value)">
<input type=text name=key>
<input type=submit value="検索">
</form>

function myFindText(text) {

if(document.all){// IE4
var target = parent.main.document.body.createTextRange();
if (target.findText(text)){
target.select();
target.scrollIntoView();
}
} else if(document.layers){//NN4
parent.main.window.find(text);
}
return false;
}

A 回答 (1件)

これでどうでしょうか?



<SCRIPT>
var fCnt = 0;

function myFindText( text ) {

  // IE
  if( document.all ){

    var targe=parent.main.document.body.createTextRang();
    var iLoop;
    var found;

    for( iLoop=0 ; iLoop <= fCnt && (found = target.findText( text )) != false; iLoop++ )
    {
      target.moveStart("character", 1);
      target.moveEnd("textedit");
    }

    if ( found ) {
      target.moveStart("character", -1);
      target.findText( text );
      target.select();
      target.scrollIntoView();
      fCnt++;
    }
    else {
      if (fCnt > 0) {
        fCnt = 0;
        myFindText( text );
}
      else{
        alert( text + " は見つかりませんでした。");
      }
    }
  }
  // NN
  else if(document.layers)
  {
    parent.main.window.find(text);
  }
  return false;
}
</SCRIPT>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
完璧です。

お礼日時:2003/04/07 11:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!