<button onclick="handleEvent()">向父页面发送信息</button>
<p>子页面</p>
<script>
window.addEventListener('message', (e) => {
console.log('iframe=' + e.data);
}, false);
function handleEvent() {
window.parent.postMessage('子页面发的消息', '*');
</script>
解决跨域Uncaught DOMException: Blocked a frame with origin ** from accessing a cross-origin frame问题
问题iframe窗口修改元素,提示Uncaught DOMException: Blocked a frame with origin ** from accessing a cross-origin frame,无法修改解决办法:使用 postMessage() 方法用于安全地实现跨源通信window.postMessage(message,targetOrigin) 方法是html5新引进的特性,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源,目前IE
问题描述:
UncaughtDOMException:
Blockeda
framewith
origin"http://localhost:46819"from
accessingac
ross-
originframe.
问题分析:
1、由于页面中子i
frame嵌套了其他网站的页面,导致了
跨域问题,无法获取子i
frame的元素和方法。
JavaScript访问html页面内嵌不同源iframe报错 js: Uncaught SecurityError: Blocked a frame with origin...
最近遇到一个棘手的bug,App 中有一个网页内嵌了一个iframe,这个iframe一个类似客服机器人聊天窗口的弹出框,嵌在主网页某一个位置,是和主网页不同源的,需要获取iframe中的areatext元素,当用户点击的时候,弹出一个软键盘,供用户输入。
SUSE seld15, QT5.15.0
参考文档:
https://javascript.info/cross-window-communication
https://developer.mozilla.org/zh-CN/docs/Web
在不同的端口号,甚至是不同的ip进行i
frame嵌套的时候,在父页面调用子页面的方法的时候,报错
SecurityError:
Blocked a
frame with
origin from
accessing a c
ross-
origin frame…
问题原因
在不同端口号下,不能使用传统...
原因:Chrome 认为跨域不安全。
解决办法:跨页面操作涉及域的概念,错误的意思是:未捕获的安全错误:阻止了一个域为 null 的 frame 页面访问另一个域为 null 的页面。代码运行时在本地直接用浏览器打开的,地址栏是 file:/// 的页面,只需改为 localhost 访问就行。
我直接将前端静态页面资源扔到hbuider中并运行到浏览器Chrome中即可解决问题!
工具环境:Layui框架下使用VS Code进行Chrome 调试。
问题描述:当Chrome浏览器使用iframe页面调用其他页面时会提示:"Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame"。
但是IE和Edge是没有问题...
遇到需要使用窗口的功能,是这样的 ,A站点的a1页面为主要显示页面,但是需要调用B站点的b1界面用来保存数据到B站点上,然后再将b1页面获取的地址体现到a1页面上,在调用页面的关闭事件的时候遇到问题:
Uncaught DOMException: Blocked a frame with origin
了解出错的错误信息后百度了,都是写了写跨域的问题,修改地址为IP地址对本应用是不可取的,自己...
在不同的端口号,甚至是不同的ip进行iframe嵌套的时候,在父页面调用子页面的方法的时候,报错
SecurityError: Blocked a frame with origin from accessing a cross-origin frame…
问题原因
在不同端口号下,不能使用传统的iframe嵌套调用方法。
document.getElementById("mainFram...
<iframe id="mainframe" name="mainframe" frameborder="0" src="/../**" style="overflow-x: hidden; height: 1389px; width: 1000px;" width="1912"></iframe>
显示用a标签,targ...
在子页面,想使用父页面的参数,但是原因两个的域名不一样,所以会出现跨域问题
解决方法:在子页面
window.postMessage("message", '*');//后面的*号就是处理跨域问题的
然后在父页面
window.addEventListener('message', function (msg) {
console.log(msg.data);
设置监听的方法就可以了
这是内嵌 iframe 页面使用 window.parent 或 top.xxxx 导致的,在 子页面,想传递给 父页面的参数,但是原因两个的域名不一样,所以会出现跨域问题。
解决办法
1、父页面监听 message,写法固定
window.addEventListener('message', function (e) {
console.log(e)
2、子页面发送 message 消息,并附带参数
// window.parent 是 iframe 子页面获取父页面的 window..
解决这个问题有两种方法:
1. 修改服务器端设置,允许跨域访问。可以在响应头中添加 Access-Control-Allow-Origin 头信息,来指定允许访问的域名。
2. 使用代理,将请求转发到同源的服务器上,再返回结果。这样就能避免跨域问题。
无论采用哪种方法,都需要注意安全性问题,避免出现安全漏洞。