1

我在页面上有一个按钮,按下该按钮时,会搜索表单上的数据,突出显示某个字段,并且 javascript ALERT() 是找到单词的用户。一旦用户确定了 ALERT(),javascript 就会搜索并突出显示下一次出现的单词,并发出警告,并继续此行为,直到找不到更多数据。

在 IE9 之前,下面的代码可以很好地产生这种行为(这是代码的一个非常简单的版本,它演示了问题)。通常(在 IE9 之前)在第一个 ALERT() 暂停时,文本会在屏幕上突出显示,但在 IE9 下则不是。在 IE9 中,直到整个脚本完成后(第二次警报之后),才会突出显示任何内容,此时仅突出显示最后找到的字符串。这可以防止应用程序单步执行并突出显示每个找到的单词并提醒用户。

尝试在 IE9 下运行以下命令,然后在 IE8 及更低版本下运行。在这种情况下,我不需要担心其他浏览器,只需 IE(它是一个受控的浏览器应用程序环境):


<html>
<head>
</head>
<body>

<form name="MYFORM">
<input type="text" value="NAME/JONES   ADDR/123 MAIN" name="myinput" size="40">
</form>

<script type="text/javascript" language="JavaScript">

   var range = document.MYFORM.myinput.createTextRange();

   var strFound=range.findText("NAME/");
   range.select();
   alert("Message 1");

   var strFound=range.findText("ADDR/");
   range.select();
   alert("Message 2");

</script>

</body>

感谢您对修复代码以在 IE9 下工作的任何见解。

凯文

4

1 回答 1

0

您可能需要给 UI 时间来重新绘制 - 通过将代码拆分为可以使用setTimeout(nextIteration, 0);.

于 2012-10-23T02:04:40.990 回答