<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test back button</title>
<script language=javascript>
function additem()
{

var obj=window.selectCtrl;
for(i = 0;i < obj.length;i++){

if(eval("document.all.selectCtrl.options["+i+"].selected")==true){
//alert();
var selectCtrl = document.getElementById("selectCtrl");
var selectedText = document.getElementById("selectedText");
selectedText.value = selectCtrl.options[selectCtrl.selectedIndex].text;
}
}
}
</script>
</head><body>
1.在列表中双击,选择一个值:<br>
<select size="4" id="selectCtrl" ondblclick="additem();" style="height:120px;width:128px;">
<option value="1">Value 1</option>
<option value="2">Value 2</option>
<option value="3">Value 3</option>
<option value="4">Value 4</option>
<option value="5">Value 5</option>
</select>Selected text:<input id="selectedText" type=text style="width:200px">
<br>
<br>
2.点击下面的链接,转到一个网页(点击之前,请先看一下3.的说明)<br>
<a href="http://www.sohu.com">Go to a page</a><br>
<br>
3.使用浏览器的“后退” 按钮,回到此页,看看下面的“Last selected text:”后面有没有值?<br>
<div id="backText">Last selected text:</div><script language=javascript>
additem();
var selectedText = document.getElementById("selectedText");
var backText= document.getElementById("backText");
backText.innerHTML += selectedText.value;
</script>
</body></html>

解决方案 »

  1.   

    To friendlyFour(web开发四人组):
    非常感谢你的回答,但是这个方法好像不能从根本上解决问题,如果我修改一下下面的代码:
    selectedText.value = selectCtrl.options[selectCtrl.selectedIndex].text;
    改成:
    selectedText.value += selectCtrl.options[selectCtrl.selectedIndex].text+",";
    这样我可以选择多个值到textBox中去,但是进入其他页面再后退,只能在最后显示你最后一次选择的值,而不是多个值。其实,我原来的代码在FireFox中是没有问题的,不知道为什么在IE中有这样的问题?
      

  2.   

    问题我感觉就是在“后退”的时候没有激发additem();事件
      

  3.   

    这个事件应该不需要触发的,因为你可以看到,在返回过来的时候,那个文本框的值还是保留的,但是为什么用javascript就不能取到那个文本框的值呢?
      

  4.   

    谢谢各位的帮助!
    问题已在下面地址解决:
    http://community.csdn.net/Expert/topic/4294/4294338.xml
      

  5.   

    IE在返回的时候会先载入整个页面,这时候文本框的值是空的;然后再载入记忆的值。
    我在页尾的script中加了个alert(selectedText.value),返回时可以看到先弹出空值,然后文本框的值出现。也就是IE里的顺序不对,是先执行JS,再载入文本框的值。所以取不到值。怎么实现还没搞定,谁搞定了一定告诉大家
      

  6.   

    To mbo(mbo):
    谢谢你的回答!你的分析是对的,在前面加一个alert之后确实可以取到值。
    在我上面给的地址,net_lover(孟子E章) 已经解决了此问题。
    再次感谢大家!
      

  7.   

    你没有明白window.history.go(-1);的意思。