父页面操作iframe回到顶部

1.前言

  在前端开发中,我们的网页有时会嵌套一个iframe子页面,这时候在父页面定义的回到顶部按钮就需要控制父、子两个页面同时回到顶部。

2.实现方法

1)定义iframe及回到顶部按钮

1 <button id="returnTop" type="button">回到顶部</button>
2 <iframe id="myIframe" name="iframe" src="test.html" ></iframe>

2)js代码(使用jquery实现)

 1 // 返回顶部
 2 $("#returnTop").click(function () {
 3     //滑动的速度
 4     var speed = 200;
 5     //父页面回到顶部
 6     $('body,html').animate({scrollTop: 0}, speed);
 7     //iframe页面回到顶部
 8     var iframe = window.frames["iframe"];
 9     iframe.$('html, body').animate({scrollTop: 0}, speed);
10 });

3.其他方法

  在iframe页面中自定义一个方法,然后在父页面调用该方法也可以实现相关操作(如果要实现回到顶部功能的话,需要在每个子页面都定义方法,不推荐)

1 //父页面调用
2 $("#returnTop").click(function(){
3     var iframe = window.frames["iframe"];
4     if (iframe != null && iframe != undefined) {
5         iframe.iframeFunc();
6     }
7     return false;
8 })
1 //子页面自定义方法
2 function iframeFunc(){
3     alert("我是子页面中的方法");
4 }

*补充:强制刷新iframe页面

$("#myIframe").attr("src",$("#myIframe").attr("src"));

*注:当iframe的src后附带锚点值时(如:src="test.html#param1"),改变“#”号后的内容,iframe页面不会刷新;

  而如果是“?”号附带参数的形式(如:src="test.html?id=1001"),改变“?”后参数内容,iframe页面会刷新。

 

 

转载于:https://www.cnblogs.com/jakeylove3/p/8568509.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下方法将值从页面传递到iframe页面: 1. 在页面中,使用JavaScript获取对iframe元素的引用: ```javascript var iframe = document.getElementById('your-iframe-id'); ``` 2. 使用iframe的contentWindow属性访问iframe的window对象: ```javascript var iframeWindow = iframe.contentWindow; ``` 3. 通过在iframe页面中定义全局变量或使用postMessage方法将值传递给iframe页面。下面是两种方法的示例: 通过全局变量传递值: 在页面中,设置全局变量并将其赋值给iframe页面内部的变量: ```javascript // 在页面中 var valueToPass = 'Hello, iframe!'; iframeWindow.valueFromParent = valueToPass; ``` 然后,在iframe页面中,您可以访问该值: ```javascript // 在iframe页面中 console.log(valueFromParent); // 输出:Hello, iframe! ``` 使用postMessage方法传递值: 在页面中,使用postMessage方法向iframe发送消息: ```javascript // 在页面中 var valueToPass = 'Hello, iframe!'; iframeWindow.postMessage(valueToPass, '*'); ``` 然后,在iframe页面中,通过监听message事件接收传递的值: ```javascript // 在iframe页面中 window.addEventListener('message', function(event) { console.log(event.data); // 输出:Hello, iframe! }); ``` 请注意,为了安全起见,应该限制postMessage方法的目标源,而不是使用通配符"*"。这样可以确保消息仅发送到预期的目标。 这些方法可以帮助您在页面iframe页面之间传递值。根据您的具体需求和使用情况,选择适合您的方法即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值