导航:首页 > 编程语言 > iframe跨域调用js

iframe跨域调用js

发布时间:2022-09-20 11:25:57

javaScript 怎么跨域获取 iframe 中的内容

如果 iframe地址与当前页面地址同域,js可以访问该页面内的对象.

使用 window.frames[0] 或者window.frames[name] 来访问frame的window对象

如要获取元素,使用 window.frames[0].document.getElementById
另外 ,ie系列和webkit系列可能访问方法上略有区别,具体可调试查看

㈡ JS跨域访问操作iframe代码

没太明白你的意思,如果是让iframe跟着主窗口大小走,那么只需要设置iframe的大小就可以了。
<html>
<body>
<iframe width="100%" height="100%" src="b.html" id="frm">
</iframe><br>
输入宽:<input name="myWidth"><br>
输入高:<input name="myHeight"><br>
<input type="button" value="调整大小" onClick="fun()">
</body>
</HEAD>
</HTML>
<script>
function fun(){
var myWidth = document.getElementById("myWidth").value;
var myHeight = document.getElementById("myHeight").value;
window.resizeTo(myWidth,myHeight);
}
</script>

补充:
你的意思说,A页面有多大,你的B页面就有多大,把整个屏幕撑满,是这个意思吗?

㈢ 如何用javascript 跨域获取iframe子页面的元素信息

跨域的话想用父页面的js获取iframe里的元素是不可能的。
用chrome扩展程序的话是可以的。

㈣ 如何用js操控iframe引用的跨域网站

<body>
<buttonid="btn">submit</button>
<iframesrc="http://www..com"id="frame"frameborder="0"></iframe>
</body>
<script>
varbtn=document.getElementById('btn');
varfr=document.getElementById('frame');
btn.addEventListener("click",function(){
fr.contentWindow.location.href="http://www.2345.com";
});
</script>

给按钮绑定个事件吧然后执行iframe.location.href="新闻页地址";

㈤ 主页面怎么调用iframe里的javascript方法

如果是同一个域,iframe可以调用父窗口的js方法。如果
是父窗口调用子窗口内部的方法。不论跨不跨域,都不能调用。
解决办法:H5提供的消息机制。支持跨域。

在iframe窗口的js代码中,监听事件:
window.onmessage=function(e){
//e.data--接收到的字符串。
//e.source---发送窗口所在的域。
//e.orgin--发送窗口的代理对象。
}
在主页面窗口中,发送消息。
window.postMessage("字符串","域");
//其中的域是指iframe所在网站的域名。如果为*表示不校验校验域名。

㈥ javascript 跨域调用js文件问题.....

三种方法实现js跨域访问

1.基于iframe实现跨域

基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域(例如都是xxx.com,或是xxx.com.cn),使用同一协议(例如都是 http)和同一端口(例如都是80),这样在两个页面中同时添加document.domain,就可以实现父页面调用子页面的函数,代码如下:

页面一代码:
<html>
<head>
<script>
document.domain="xx.com";
functionaa(){
alert("p");
}
</script>
</head>
<body>
<iframesrc="http://localhost:8080/cmsui/2.html"id="i">

</iframe>
<script>
document.getelementbyid('i').oncg=function(){
vard=document.getelementbyid('i').contentwindow;
d.a();

};
</script>
</body>
</html>
页面二代码:
<html>
<head>
<script>
document.domain="xx.com";
functiona(){
alert("c");
}
</script>
</head>
<body>
</body>
</html>

这时候父页面就可以调用子页面的a函数,实现js跨域访问


2.基于script标签实现跨域

script标签本身就可以访问其它域的资源,不受浏览器同源策略的限制,可以通过在页面动态创建script标签,代码如下

varscript=document.createElement('script');
script.src="http://aa.xx.com/js/*.js";
document.body.appendChild(script);

这样通过动态创建script标签就可以加载其它域的js文件,然后通过本页面就可以调用加载后js文件的函数,这样做的缺陷就是不能加载其它域的文档,只能是js文件,jsonp便是通过这种方式实现的,jsonp通过向其它域传入一个callback参数,通过其他域的后台将callback参数值和json串包装成javascript函数返回,因为是通过script标签发出的请求,浏览器会将返回来的字符串按照javascript进行解析执行,实现了域与域之间的数据传输。

jquery中对jsonp的支持也是基于此方案


3.后台代理方式


这种方式可以解决所有跨域问题,也就是将后台作为代理,每次对其它域的请求转交给本域的后台,本域的后台通过模拟http请求去访问其它域,再将返回的结果返回给前台,这样做的好处是,无论访问的是文档,还是js文件都可以实现跨域

㈦ js如何操作iframe的跨域问题

A域名下的页面index.htm中内嵌了一个iframe页面,iframe内引用的是B域名的sub-index.htm页面,但是为了避免出
现在index.htm页面中出现滚动条,需要明确知道sub-index.htm页面的高度和宽度,可是sub-index.htm的页面内容是不可控的,可能会根据不同用户页面大小会不一样;问题就是如何把sub-index.htm页面的高度和宽度传递给index.htm页面?

具体解决:
1、在index.htm页面中声明一个js函数process(height, width);用来实现设置页面内iframe的高度和宽度;
2、
在sub-index.htm页面中再内嵌一个隐藏的iframe,iframe的src指向A域名下的页面ex.htm?height=xx&
width=yy,该页面没有任何内容,只是用来传递sub-index.htm页面加载完之后的宽度和高度这两个数据的,页面内js拿到request
中的参数之后直接调用parent.parent.process(height, width);完成对父页面宽度和高度的设置;
如图:

㈧ JavaScript 怎么跨域获取 iframe 中的内容

要解释这个问题,首先要解释两个技术点。

每个“窗口”都是一个JS Runtime,即JS的运行时。如果只有一个窗口,那么就只有一个Runtime;如果一个窗口下面还有一个iframe,那么就有两个Runtime;以此类推。

Runtime之间互操作(或者通信)是有跨域限制的。也就是说,如果这个窗口本身是a..com域名下的页面,那么如果这个页面下还有一个iframe,这个iframe中加载的页面是b..com域名下的。那么外层的JS。就不能跟这个iframe中的内容互操作(或者通信)。

因此外层Runtime中的JS想操作内层iframe中的内容,就必须要避免跨域限制。要么内层iframe加载页面的域名跟外层是一样的。要么就是需要在内层iframe加载的页面中执行document.domain = '.com';从而设置跟外层的主域相同。

例如,当前页面是a..com/test.html
<html>
<head>
</head>
<body>
<iframe id="iFrm1" src = ""margin: 0px; padding: 0px; color: rgb(69, 69, 69); font-family: arial, 宋体, sans-serif, tahoma, 'Microsoft YaHei'; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-tap-highlight-color: rgba(26, 26, 26, 0.301961); -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">
iframe中加载的页面内容如下:
<html>
<head>
</head>
<body>
<div id="innerDiv">恭喜操作到内部iframe中的元素了!!!</div>
<script>
document.domain = '.com';
</script>
</body>
</html>

在HTML5中新增了postMessage的API。可以方便窗口跟内部iframe之间进行通信,并且可以实现跨主域通信。但是有一些限制,1.老版本的浏览器一般不支持。2.父窗口只能向iframe中发送信息,iframe只能收消息,且父窗口不能直接操作iframe中的内容。3.父窗口发送的数据也是有限制的。只能发送基本数据类型或者plain object。

㈨ js 跨域操作 iframe 里面的元素

不可以。
iframe也存在跨域的问题。你只能修改iframe的熟悉,但是操作不了iframe里面的元素。这是浏览器限制,非JS能力所及。

㈩ js iframe 跨域调用怎么不行。

你这个调用的方式没问题,
问题是你的showM
在 加载 child的时候,页面内容是 对的
但是通过父业面调用一次后, child的内容就变成 'child'了,showm()之类的就都被冲掉了,
所以再次执行就会报错

阅读全文

与iframe跨域调用js相关的资料

热点内容
删除一个文件夹找不到了 浏览:654
电脑桌面文件管理哪个软件好 浏览:188
苹果数据线头歪了 浏览:135
ghostwin764位系统镜像文件 浏览:443
传感器视频教程下载 浏览:95
flash源文件贺卡下载 浏览:434
如何提高网络扶贫的效果 浏览:654
飞车软件文件夹叫什么 浏览:242
刷ec用什么编程器 浏览:765
方菱数控u盘文件格式 浏览:260
编程为什么输出两个变量 浏览:490
卫星大锅2017用升级吗 浏览:113
玉米win10系统下载 浏览:134
fgo技能升级减cd吗 浏览:129
什么记账app免费好用 浏览:441
网络检测可以检测到什么 浏览:504
sip协议教程 浏览:832
编程哪里可以接项目 浏览:119
孤岛惊魂win10 浏览:246
网络HRV是什么意思 浏览:918

友情链接