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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)