一个子窗口向父窗口传值,使父窗口的下拉框选中的例子,下面是具体的代码。
一:父窗口,使用js打开一个新的窗口,新的窗口将传递一个下拉框的值
<!--
Cresting @20080426
-->
<
html
>
<
head
>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<
style
type
="text/css"
>
...
body
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
{...}{
font-size: 12px;
}
span
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
{...}{
color:red;
}
</
style
>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<
script
type
="text/javascript"
>
...
var newWin; //定义全局变量,表示新打开的窗口
function OpenNewWin()
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if(newWin == null) //不存在则打开
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
newWin = window.open('openWin.htm','newWin','width=400,height=400,menubar=no,location=no,toolsbar=no,status=no');
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if(newWin.closed) //已关闭,打开
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
newWin = window.open('openWin.htm','newWin','width=400,height=400,menubar=no,location=no,toolsbar=no,status=no');
}
else //否则获得焦点
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
newWin.focus();
}
}
}
function ddlSelectedChanged()
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
//当值改变时触发该事件,但和别的一样,用javascript赋值时,并不响应该事件
var showValue = document.getElementById("selectedValue");
var ddlTest = document.getElementById("ddlTest");
if(showValue != null && showValue != "undefined")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
showValue.innerHTML = "您选择了:<br>";
showValue.innerHTML += "SelectedIndex:"+ddlTest.selectedIndex+"<br>";
showValue.innerHTML += "SelectedValue:"+ddlTest.options[ddlTest.selectedIndex].value+"<br>";
showValue.innerHTML += "SelectedText :"+ddlTest.options[ddlTest.selectedIndex].text+"<br>";
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
alert("Error");
}
}
</
script
>
</
head
>
<
body
>
<
select
id
="ddlTest"
onchange
="ddlSelectedChanged();"
>
<
option
value
="000"
selected
>
===
</
option
>
<
option
value
="111"
>
AAA
</
option
>
<
option
value
="222"
>
BBB
</
option
>
<
option
value
="333"
>
CCC
</
option
>
<
option
value
="444"
>
DDD
</
option
>
</
select
>
<
br
/>
<
br
/>
<
span
id
="selectedValue"
></
span
>
<
br
/>
<
hr
/>
<
br
/>
<
input
id
="btn"
type
="button"
value
="Click Here"
onclick
="OpenNewWin();"
/>
</
body
>
二:打开的字窗口,子窗口传一个值给父窗口,父窗口中的下拉框根据这个值选中相应
<!--
Cresting @20080426
-->
<
html
>
<
head
>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<
script
type
="text/javascript"
>
...
function SetSelectedItem(val)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
var ddlTest = opener.document.getElementById("ddlTest"); //父窗口的下拉框
if(ddlTest != null && ddlTest != "undefined")
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
var len = ddlTest.options.length;//用于循环下拉框的所有选项,如果选项值等于传入的值的话,选中该项
for(i=0; i < len ; i++)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
if(ddlTest.options[i].value == val)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
ddlTest.options[i].selected = true;
break;
}
}
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
alert("脚本语法错误,请刷新后重试!");
}
}
</
script
>
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
<
style
type
="text/css"
>
...
body
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
{...}{
font-size: 12px;
}
</
style
>
</
head
>
<
body
>
直接写代码:
<
br
/>
<
a
href
="#"
onclick
="javascript:opener.document.getElementById('ddlTest').selectedIndex = 1"
>
Select the 2nd Value!(SelectedIndex = 1)
</
a
>
<
br
/>
<
br
/>
调用方法实现:
<
br
/>
<
a
href
="#"
onclick
="javascript:SetSelectedItem('333');"
>
Select the item that value equals '333'(Value = '333')
</
a
>
</
body
>