日期:2014-05-16  浏览次数:20376 次

三个页面间的opener问题!
A.htm页面内容
HTML code
<script src="http://127.0.0.1/Main.asp"></script>

<a href="javascript:openwin('http://127.0.0.1/sub.asp',abc)">测试链接</a>



openwin是js函数在Main.asp里面提供的

其中这两个页面的工作原理如下:

Main.asp是主页面,负责大部分的功能,sub.asp是由Main.asp打开的子页面,其间这两个页面间不断的有通讯,sub.asp通过opener来操作Main.asp中的对象等!




问题如下,如果直接在Main.asp中调用openwin,那么打开的页面sub.asp功能完全正常!即在sub.asp中用opener来操作Main.asp的对象时完全正常!

但如果像上面的A.htm页面一样,将Main.asp嵌入到另一个页面中的时候,再在该页面中调用Main.asp里面的openwin的候时,打开的sub.asp页面如果再使用opener来操作Main.asp里面的对象的时候,会提示"对象不支持此属性或方法"



这种情况下打开的sub.asp页面再调用opener得到的是不是A页面了?有没办法让它的opener仍然是指向Main.asp这个页面的?



Main.asp是一个独立的完成一种功能的页面,供其它页面调用的!必须像A.htm页面这样调用!


问题挺刺手,各位老鸟帮帮忙!

------解决方案--------------------
main.asp
-------------------------
function tellmyname(){
alert("my name is main.asp")
}

sub.asp
-------------------------------------------
<input type=button onclick=opener.tellmyname() />

a.html
------------------------------------------
<script src=main.asp></script>
<a href="javascript:open('Untitled-1.asp','abc'),void(0);">aaasd</a>

测试可用。
提醒:你的main.asp里的输出脚本不要再使用<script></script>标签。否则会产生错误。