跨域打开页面:Uncaught DOMException: Blocked a frame with origin

Uncaught DOMException: Blocked a frame with origin

使用postMessage()方法可以解决跨域传值的问题
Api: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage

父页面:

layer.open({
                skin: 'rocket',
                scrollbar: false,
                type: 2,
                title: 'test',
                shadeClose: true,
                area: ['50%', '50%'],
                content: url,//iframe的url
                btn:['保存'],
                btnAlign: 'c',
                yes: function(index, layero){
                    window[layero.find('iframe')[0]['name']].postMessage('addAndEdit', '*');
                    layer.close(index);
                },
                cancel: function(index, layero){
                    window[layero.find('iframe')[0]['name']].postMessage('addAndEdit', '*');
                    layer.close(index);
                }
            });

        function receiveMessage(event) {
            console.log(event.data)//取得子页面传回来的值
            var roomId = event.data;
            getSitUnitByRoomId(roomId)
        }

子页面:

// 跨域发送消息
        window.addEventListener('message',function(e){
            var value = e.data;
            //返回方法向父页面发送数据
            if (value != null && value == 'addAndEdit') {
                if (fangjianId) {
                    parent.postMessage(fangjianId, "*")
                }
            }
        }, false);

原文地址:https://www.cnblogs.com/yanweifeng/p/12377193.html

时间: 2024-08-03 10:11:53

跨域打开页面:Uncaught DOMException: Blocked a frame with origin的相关文章

iframe跨端口报错 Blocked a frame with origin from accessing a cross-origin frame

前言    在不同的端口号,甚至是不同的ip进行iframe嵌套的时候,在父页面调用子页面的方法的时候,报错 SecurityError: Blocked a frame with origin from accessing a cross-origin frame… 问题原因    在不同端口号下,不能使用传统的iframe嵌套调用方法. document.getElementById("mainFrame").contentWindow.xxxx(): 因为 同源安全策略     

解决Iframe跨域高度自适应,利用window.postMessage()实现跨域消息传递页面高度(JavaScript)

在iframe跨域引用高度自适应这块写的js方式都试了不管用,最终使用的是window.postMessage() 跨域获取高度 传递信息 1.首先,在主页面上使用iframe引入子页面:也就是A.html页面引入B.html页面,下面看看A.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head>

iframe显示跨域url页面

可以通过JS搞定跨域问题,但是比较麻烦,我就在后台处理了,其实这样本质上也算不上是跨域了 后台otherwebsite.php: <?php $url="www.otherwebsite.com"; echo " <html> <head> <title></title> <meta content='0; url={$url}' http-equiv='refresh'> </head> <

js跨域请求页面的时候如果不做处理会报错

当执行ajax请求的时候, 如果url域名和服务器域名不一致,在执行请求时就会报跨域的bug,解决办法很简单,如下 $.ajax({ type: "GET", url: "", dataType: 'jsonp', success:function(data){ 加上dataType:'jsonp'这一行就可以了:

WebBrowser控件跨域访问页面内容

原文出处 :http://blog.csdn.net/nocky/article/details/6056802 源码出处:http://www.codecentrix.com/blog/wnd2doc_csharp/GetDocumentFromWindowCsharp.zip 原作者的博客:http://codecentrix.blogspot.com/ 整理发现最后还是IE策略给限制了跨域访问,之前使用编程的办法和植入Script代码的办法,都是拒绝访问的. 不过现在用了下边的方法就可以解

Iframe跨域嵌入页面自动调整高度的办法

http://www.a.com/A.html http://www.a.com/B.html http://www.a.com/D.js http://www.c.com/C.html A.html: <iframe id="iframe_shg" src="http://www.c.com/c.html" frameborder="0" width="100%"></iframe> ________

跨域请求页面跳转

1.jsp->java(编码)->java <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/

iframe框架自适应高度 uncanght SecurityError: Blocked a frame with origin &quot;null&quot; from accessing a frame ....

来源于crm项目的contact/edit.html 一.背景是这样的 最近在做crm系统的前端页面,有一个页面呢,点击“查看全部信息”时会弹出,这个弹窗里面又有分页导航,分页不是使用ajax 异步刷新请求写的,而是通过刷新页面.由于整站的分页都是使用这个方法,所以不可能让后端同事用ajax重写一个分页,所以呢,就想到使用iframe框架,把这个弹窗写在html文件,放在iframe中完成.一切都是perfect的想法. 二.问题来了!解决问题 此时不仅仅是没有高度自适应而且还报错,其实这报的错

同源策略与跨域技术

待整理:1-2参见<JavaScript高级程序设计>P586;3-5参见http://mp.weixin.qq.com/s/asmzA8a1HuYQxyx8K0q-9g 一.同源策略 https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy 浏览器的同源策略限制了 从一个源加载的文档或脚本与来自另一个源的资源的交互.它是隔离潜在恶意文档的关键安全机制. 具体限制: 不能通过ajax的方法去请求不同源的资源