今天帮 "阿辉小屋javascriptⅠ"QQ群里 卡缪 解决了一个javascript 跨域传值的问题.
问题描述:
站点A上一个页面 a.html 的iframe下有一个站点B上的一个页面b.html.想把页面b.html的一个字符串传给页面a.html A 的域名为:www.aaa.com B的域名为:www.bbb.net .问题是直接引用会出现没有权限的错误.
解决办法:
第一种:利用windows的剪粘板 第二种:在B上生成一个文件
a.html 的内容为:
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
/>
<
title
>
js跨域
</
title
>

<
script
language
="javascript"
defer
="defer"
>
...
document.getElementById("aaa").style.height=parseInt(window.clipboardData.getData("text"))+ 50 + "px";
</
script
>
</
head
>

<
body
>
<
iframe
id
="aaa"
src
="http://ladder.nyist.net/ladder/chenchun/B.html"
>
</
iframe
>
</
body
>
</
html
>
b.html
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
>
<
meta
http-equiv
="Content-Type"
content
="text/html; charset=gb2312"
/>
<
title
>
js跨域
</
title
>

<
script
language
="javascript"
defer
="defer"
>
...
window.clipboardData.setData("text",String(window.document.body.scrollHeight));
</
script
>
</
head
>
<
body
>
<
table
width
="600"
height
="284"
border
="1"
align
="center"
cellpadding
="0"
cellspacing
="0"
>
<
tr
>
<
td
>
a
</
td
>
<
td
>
a
</
td
>
<
td
>
a
</
td
>
</
tr
>
</
table
>
</
body
>
</
html
>
原理:
在b.html里面将要传递的值在页面被加载时存进windows的剪粘板,a.html中从剪粘板中读出数据
但这种方法有他的局限性:只对windows 下的IE有用
最后 卡缪 把要传的值生成一个js文件存在B的服务器上,在a.html里引用该js 文件,原理基本上一样,哈哈~
补冲一下:
今天上课是和同学讨论了这个问题,以上的办法,只限于,对两个服务器都有读写的权限.当对B没有操
作的权限时,的解决办法为.读取b.html处理后直接写到a.html里面(读取的办法有好多,其中有一种是利用SOCKET 另外asp.net 里面还有好几种方法可以做到)
本文介绍了通过使用浏览器剪贴板或生成JavaScript文件的方式解决跨域数据传递问题的方法,并探讨了不同场景下的适用性。

4433

被折叠的 条评论
为什么被折叠?



