js操作的跨域问题:js实现自动设置框架载入页面高度的问题

<!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=utf-8" />
<style type="text/css">
*{border:0px; margin:0px; padding:0px;}
</style>
<title>首页</title>
</head>

<body>
<script type="text/javascript">

   function setHeight(){
  var iframe = document.getElementById("middle");
     try{
       var aHeight = iframe.contentWindow.document.body.scrollHeight;
       var bHeight = iframe.contentWindow.document.documentElement.scrollHeight;
       var height = Math.max(aHeight, bHeight);//取最高值;
       iframe.height =  height;
     }catch (e){}
   }

</script>

<iframe name="middle" id="middle" src="http://xxx.xxx.com" frameborder="0" border=0 scrolling="no" style="display:block; margin:0 auto;" width="100%" onload="this.height=1000;setHeight();"></iframe>
</body>

</html>

问题:发现所载入的http://xxx.xxx.com这个页面显示并不完整。iframe的高度并没有实现适应http://xxx.xxx.com页面。使用火狐调试的时候发现,js出现了异常,结果进入了上面js代码中的“catch (e){}”这一部分代码了。当然没有成功设置iframe元素的height的值了。火狐提示了另外一个有用的信息,大致是说:js没有权限。

后来,同样的代码,上传到服务器上能够成功设置高度。而在本地使用的时候就出现异常。通过查看资料得出,原来是由于该文件与http://xxx.xxx.com不在同一个域下面,出现了跨域读取权限的问题。

时间: 2024-08-01 06:09:24

js操作的跨域问题:js实现自动设置框架载入页面高度的问题的相关文章

JS操作未跨域iframe里的DOM

这里简单说明两个方法,都是未跨域情况下在index.html内操作b.html内的 DOM. 如:index.html内引入iframe,在index内如何用JS操作iframe内的DOM元素? 先贴下index.html和iframe引入的a.html内容. index-> <div class="d1"> <iframe src="a.html" frameborder="0" name="one"

js中各种跨域问题实战小结

什么是跨域?为什么要实现跨域呢? 这是因为JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.也就是说只能访问同一个域中的资源.我觉得这就有必要了解下javascript中的同源策略是怎么回事了:javascript的同源策略 于是当我们想某些特定的功能的时候,实现合理的跨域请求就显得比较重要了. -->1.原生Ajax对象xhr的跨域 -->2.简单jsonp -->3.图像Ping -->4.document.domain+iframe实现跨域 javascr

Java端和js端cookie跨域共享

问题描述 Java端和js端cookie跨域共享 关于cookie共享技术,查了网上的资料,有两种方式:后台服务端和前台js端. 我在网站A后台服务端设置cookie如下: Cookie cookie = new Cookie("mobile", "*****"); cookie.setPath("/"); cookie.setDomain("cms.ban.net"); response.addCookie(cookie);

如何进行跨域执行js,一台服务器上的js去执行另一台服务器上js

问题描述 跨域执行js里的function,如:A服务器上的js函数去执行B服务器上的函数,B服务器上现实A服务器执行B服务器函数的结果.各位大侠帮下忙! 问题补充:AngelAndAngel 写道 解决方案 你搜一下dwr反推技术,很简单的,我手头上没有样例,你下载后不懂api的话,再问我把.解决方案二:引用比如一个在线客服的邀请功能,客服端可以直接发出邀请,调用访客端前台js函数,客户端显示邀请框 按照你的说法 不是跨域的问题.而是服务器客户端的交互问题.你可以采用dwr反推技术把某一段的请

js前端解决跨域问题的8种方案(最新最全)_javascript技巧

1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.jshttp://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.j

js关于getImageData跨域问题的解决方法_javascript技巧

在学习h5的时候,canvas标签中getImageData()报错:security error! 具体代码如下(chrome浏览器): function createGSCanvas(img){ var canvas=document.createElement("canvas"); canvas.width=img.width; canvas.height=img.height; var ctx=canvas.getContext("2d"); ctx.dra

js中ajax跨域之cors几个例子分析

由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),ajax跨域请求的两种方案 方案一:jsonp (JSON with Padding)    但是jsonp有一个缺点就是不支持get传参 方案二:CORS(跨域资源共享,Cross-Origin Resource Sharing) 此方案支持post提交     假设我们在http://www.a域名.com域名ajax请求http://www.111cn.net域名下的数据:若使用cors来实现,ajax跨

前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)_jquery

项目背景:.Net 3.5+MySQL+jQuery+WebService 在公司做这个项目已经6个多月了,总结一些问题,也算是抛砖引玉吧,希望园子里更多的朋友一起分享一些技巧. 1. WebService方法返回值不能为void. 当WebService方法返回值为void时,FF和Chrome会持续等待,认为这个请求没有结束,而在IE中一切是正常的. 2.当input的type="button"时或者使用button时,点击后会触发form的submit. 当时查找页面刷新的问题找

ajax跨域请求js拒绝访问的解决方法_AJAX相关

求解决办法 复制代码 代码如下: ajax{ url :"http://xxxx/app", type:"POST"; dataType:"json", } 不能用jsonp 因为jsonp发送数据 type 为 get type 必须为post url 不能加参 (例:http://xxxx/app?callback=aaa) 返回数据位json格式.求方法