ess什么烟?:如何实现跨域网页交互

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 12:33:17
求助高手,怎样实现跨站点的,父子窗口的交互
即在父窗口能够实现子窗口的操作,或者从父窗口输入条件获取
子窗口的执行结果
能举个例子好吗(比如,将子窗口执行的动作或查询所显示的结果全部在父窗口上操作和获取)

跨站点应该就要用xmlhttp组件了
父窗口模拟自己为正常浏览者,通过web传递参数提交给子窗口,然后得到子窗体的全部html代码,再从代码中间获得要的信息。

asp的代码 '最后得到的变量HTML就是你要得到的子窗体的html代码
function getHTTPPage(url)
dim Http
set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
set http=nothing
if err.number<>0 then err.Clear
end function

Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function

Dim Url,Html
Url="http://www.xxxx.com/search.asp?uname=123&str1=djfdf"
Html = getHTTPPage(Url)

A.htm
代码:
<p>这是父窗口</p>
<p>
<input name="A1" type="text" id="A1" size="5" maxlength="5">
+
<input name="A2" type="text" id="A2" size="5" maxlength="5">
=?
<input type="submit" onclick="subW.document.all.B1.value=document.all.A1.value + document.all.A2.value;" name="Submit" value="字符加在一起并在子窗口的显示">
<script language="javascript" type="text/javascript">

var subW=window.open("b.htm","B")

function showme(str)
{
document.all.B1.value=str;
}
</script>
</p>
<p>子窗口的计算结果:
<input name="B1" type="text" id="B1">

B.htm
代码:
<p>这是子窗口 </p>
<p>
<input name="A1" type="text" id="A1" size="5" maxlength="5">
+
<input name="A2" type="text" id="A2" size="5" maxlength="5">
=?
<input type="submit" onclick="window.opener.showme(document.all.A1.value + document.all.A2.value);" name="Submit" value="字符加在一起并在父窗口的显示">
</p>
<p>父窗口的计算结果:
<input name="B1" type="text" id="B1">
</p>

====================
这样就有父子窗口就有交互!

如果使用XML需要一个中间页面作传值!

如果是动态网页可以用MSXML2.XMLHTTP(也叫小偷)来实现,

可以看一下参考文献中《Session理解》的文章
http://dev2dev.bea.com.cn/bbs/jishudata/ArticleShow.jsp?Id=10#7

或者另一篇参考文献:
http://www.chinaunix.net/jh/27/206819.html

用JAVASCRIPT的操作吧,只要父窗口和子窗口的站点都是你开发的,是没问题的~~~

两个站点都是你开发的,可以用Web Service来实现!