js如何 *** 作iframe的跨域问题

js如何 *** 作iframe的跨域问题,第1张

A域名下的页面indexhtm中内嵌了一个iframe页面,iframe内引用的是B域名的sub-indexhtm页面,但是为了避免出

现在indexhtm页面中出现滚动条,需要明确知道sub-indexhtm页面的高度宽度,可是sub-indexhtm的页面内容是不可控的,可能会根据不同用户页面大小会不一样;问题就是如何把sub-indexhtm页面的高度和宽度传递给indexhtm页面?

具体解决:

1、在indexhtm页面中声明一个js函数process(height, width);用来实现设置页面内iframe的高度和宽度;

2、

在sub-indexhtm页面中再内嵌一个隐藏的iframe,iframe的src指向A域名下的页面exhtmheight=xx&

width=yy,该页面没有任何内容,只是用来传递sub-indexhtm页面加载完之后的宽度和高度这两个数据的,页面内js拿到request

中的参数之后直接调用parentparentprocess(height, width);完成对父页面宽度和高度的设置;

如图:

父页面:promotionHistoryViewjsp

<head>

<script type="text/javascript">

function iframepromotionHistoryViewRecPoolGoGoGo(width,height) {

var appSubIframeObj=documentgetElementById("promotionHistoryViewRecPool");

appSubIframeObjstyleheight=height+"px";

}

</script>

</head>

<body>

<!-- Iframe -->

<table>

<tr>

<td>

<iframe id="promotionHistoryViewRecPool" src="${ctx}/promotionHistory/promotionHistoryViewRecPoolaction"></iframe>

</td>

</tr>

</table>

</body>

子页面:promotionHistoryViewRecRooljsp

<head>

<script type="text/javascript">

function iframeHeightWidth(){

var height = documentbodyscrollHeight;

var width = documentbodyscrollWidth;

windowparentiframepromotionHistoryViewRecPoolGoGoGo(width,height);

}

</script>

</head>

<body>

<fs:form>

</fs:form>

<script type="text/javascript">

iframeHeightWidth();

</script>

</body>

第一种很简单:

将系统B设置为可信站点。

第二种:

IE设置隐私策略:在Internet选项->隐私->高级,将“替代自动cookie处理”的选项打上,并“第一方cookie”和“第三方cookie” 都设置为 接受;如下图:

第三种:

在response的head上增加p3p协议;

java: 增加一个filter ,在 doFilter 部分:

Java代码

代码如下 复制代码

>

以上就是关于js如何 *** 作iframe的跨域问题全部的内容,包括:js如何 *** 作iframe的跨域问题、怎样跨域获取iframe中document对象、怎么用js跨域读到iframe里的cookie等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9355641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存