素材巴巴 > 程序开发 >

关于iframe父子页面传值遇到的一些问题及解决办法

程序开发 2023-09-02 16:38:45

iframe父子页面之间传值需要在服务器下进行(因为一些浏览器不支持file://协议的页面跨框架获取)。
那么如何把本地文件变成http请求获取呢?
1.首先全局安装:serve: npm install -g serve
2.找到你想用http请求的文件目录
3.在目录下打开cmd
4.启动命令:serve -p 8080
5.直接访问localhost:8080即可访问到本地文件
那么在iframe父子页面之间进行传值操作时会经常遇到这样的坑,由于在一些浏览器可能不支持file://协议的页面夸框架获取,需要以http://协议访问页面。
还有一点当要获取值或对象时,要等框架内页面加载完成后才能获取。
例如现在有两个页面,一个页面是父页面,里面嵌套了一个iframe子页面,那么现在要让父页面得到子页面里的对象,该如何实现呢?如下所示:


 
 
 iframe
 
 

这是含有iframe的父页面,而子页面的是这个样子的:


 
 
 iframe1
 
 

哈哈,这是一个测试.终于成功了

如果直接在本地打开文件显示undefind:
这里写图片描述
这就是因为一些浏览器不支持file://协议的页面跨框架获取,那么我们将其放在http下就OK了,如图:
启动serve(注意,要在你将要访问的文件夹里打开命令行):
这里写图片描述
成功以后在浏览器里直接访问本地文件:
这里写图片描述
如图,点击iframe-test.html,然后打开控制台发现,原来的undefind已经变成了iframe.html里p标签的内容,说明此时,我们成功的在父子页面之间进行了传值:
这里写图片描述

接下来就可以按照实际需求进行页面之间的操作。

(emmmm,建议能使用框架的最好使用框架,比如vue、angular、react等主流框架,会方便很多)

公众号:Coder 杂谈,欢迎关注
在这里插入图片描述


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。