iframe页面加载完成为什么还是获取不到里面的dom
iframe页面加载完成为什么还是获取不到里面的dom? 因为Iframe是跨域,跨域的情况下是无法获取到iframe里面的DOM的,即使iframe加载完成,也无法获取到里面的DOM。 有什么方法获取的到呢? 1.使用 window.postMessage 方法,将信息从iframe传递到父页面,从而能够获取到iframe里面的DOM。 2.使用document.domain,将iframe和父页面设置为同一个域,从而能够获取到iframe里面的DOM。 3.使用跨域资源共享(CORS),从而能够跨域获取iframe里面的DOM。 例如:1.window.postMessage方法: 父页面: // 监听来自子页面的消息 window.addEventListener('message', (event) => { console.log(event.data); }, false); // 向子页面发送消息 window.frames[0].postMessage('Hello, child page', '*'); 子页面: // 监听来自父页面的消息 window.addEventListener('message', (event) => { console.log(event.data); }, false); // 向父页面发送消息 window.parent.postMessage('Hello, parent page', '*'); 2.document.domain方法: 父页面和子页面设置相同的document.domain即可,然后即可以使用任意js方法从父页面访问子页面的DOM元素。 父页面: document.domain = 'example.com'; 子页面: document.domain = 'example.com'; // 父页面访问子页面的DOM var element = window.frames[0].document.getElementById('example'); 3.跨域资源共享(CORS): 使用CORS可以跨域访问资源,可以让父页面访问iframe里面的DOM。 父页面: <iframe src="http://example.com/iframe.html" allow="cross-origin"></iframe> 子页面: <script> document.addEventListener('DOMContentLoaded', () => { // 父页面访问子页面的DOM var element = document.getElementById('example'); }); </script>
iframe页面加载完成为什么还是获取不到里面的dom的更多相关文章
- react 如何处理页面加载时无法将获取缓存信息存入全局变量中
最近在做一个权限功能时,发现在读取用户公司ID进行列表查询 时,无法钭读取到缓存中的数据存入页面全局变量中进行加载查询 将问题代码整理出来 将信息存入缓存: let menuList = Helper ...
- SpringBoot的配置文件加载顺序以及如何获取jar包里的资源路径
一.读取配置文件的四种方式 这四种配置文件放置方式的读取优先级依次递减,具体可以查看官方文档. 1.1jar包同级目录下的config文件夹里的配置文件 其实我以前就见过这种方式了,只是不知道怎么做的 ...
- jq页面加载问题
Window.onload=function(){ //页面加载,不能同时编写多个,最后面的会覆盖前面的 } $(document).ready(function(){ //页面加载,能同时编写多 ...
- 页面加载完毕执行多个JS函数
通常我们需要在打开页面时加载脚本,这些脚本必须在页面加载完毕后才可以执行,因为这时候DOM才完整,可以利用window.onload确保这一点,如:window.onload=firstFunctio ...
- Java Selenium (十二) 操作弹出窗口 & 智能等待页面加载完成 & 处理 Iframe 中的元素
一.操作弹出窗口 原理 在代码里, 通过 Set<String> allWindowsId = driver.getWindowHandles(); 来获取到所有弹出浏览器的句柄, 然 ...
- Exploit Kit——hacker入侵web,某iframe中将加载RIG EK登录页面,最终下载并执行Monero矿工
RIG Exploit Kit使用PROPagate注入技术传播Monero Miner from:https://www.4hou.com/technology/12310.html 导语:Fire ...
- JavaScript在A页面判断B页面加载完毕(iframe load)
今天遇到一个需求,在A页面上判断B页面是否加载完毕(B页面是第三方页面),加载完毕时隐藏loading动画... 而平时我们一般做的事是在B页面上判断B页面是否加载完毕,进行操作. if(docume ...
- ExtJs非Iframe框架加载页面实现
在用Ext开发App应用时,一般的框架都是左边为菜单栏,中间为tab页方式的显示区域.而tab页面大多采用的嵌入一个iframe来显示内容.但是采用iframe方式有一个很大的弊端就是每次在加载一个新 ...
- 页面加载与iframe加载函数
<head> <script> $(document).ready(function(){ alert("a"); var wait = documen ...
- 解决JS文件页面加载时的阻塞
关于页面加载时的时间消费,许多书中都做出了介绍,也提出了很多种方法.本文章就详细介绍XHR注入. 概述:JS分拆的方法 1.XHR注入:就是用ajax异步请求同域包含脚本的文件,然后将返回的字符串转化 ...
随机推荐
- MSSQL Always Encrypted 加密
载自:https://zhuanlan.zhihu.com/p/63674006 文档资源:https://docs.microsoft.com/zh-CN/sql/relational-databa ...
- Typora笔记收费的解决
现在的Typora收费了,但是官网还是可以找到历史版本 Typora在1.0版本之前的不收费!!! 所有只需要下载1.0版本之前的版本就可以解决 Windows历史版本地址:https://typor ...
- interpreting non ascii codepoint
ProtoBuf 在Windows VS2019 C++平台上的使用 这两天想着了解一下protobuf,搜索了一篇博客照着弄了一下 https://blog.csdn.net/weixin_4478 ...
- ratel hook app
目录 创建平头哥项目 创建一个基本的Android项目 手动创建一个平头哥项目(windows推荐) 通过模板的方式创建平头哥项目(windows不推荐) 插入第三方集成模块 RPC调用 RPC调用静 ...
- 039_External Data Source(转载)
场景描述:很多时候在实际开发中都会遇到很多数据集成问题,如Salesforce和SAP同步数据.为了让类似问题能方便.快速地解决,Salesforce提供了"外部数据源"这样的工具 ...
- freertos 启动任务调度器后卡在svc 0,汇编停在了0x0800014A E7FE B 0x0800014A
分别引导加载程序和应用程序(带有或不带有FreeRTOS)都可以正常工作. 引导加载程序和应用程序(无需FreeRTOS)可以完美运行. 但是,如果我在应用程序中使用freeRTOS并完成两项任务(显 ...
- 第六章 mysql日志
第六章 mysql日志 一 错误日志 错误日志的默认存放路径是 mysql 存放数据的地方 hostname.err 1. 修改错误日志存放路径 [mysqld] log-error=/data/m ...
- js对象中的set和get方法
在js中,每个对象都有set和get方法,也可以自己进行定义,这里先简单说下用法 var person = { _name:'小花', get name() { return this._name + ...
- Windows MFC HTTP 函数流程
Windows MFC HTTP 函数流程 1 //建立连接 2 pInternetSession = new CInternetSession(AfxGetAppName()); 3 4 5 6 / ...
- Mac 卸载 Anaconda3
终端安装anaconda-clean conda install anaconda-clean 删除所有与 Anaconda 有关的文件与目录 anaconda-clean --yes 第 2 步中的 ...