jQuery MiniUI

标题: 请教,iframe中使用mini.open 问题 [打印本页]

作者: caojun900828    时间: 2017-2-3 16:34:36     标题: 请教,iframe中使用mini.open 问题

在A项目中的一个jsp页面a.jsp,使用iframe打开了B项目中的一个页面b.jsp,在b.jsp中,使用了mini.open方法,打开新页面,为什么浏览器会报错:SCRIPTS:拒绝访问,
是不是因为mini.open,打开的页面时顶级的,脱离了我使用的iframe?

作者: caojun900828    时间: 2017-2-3 16:35:32

请问如何解决这个问题?
作者: felt    时间: 2017-2-3 16:47:15

caojun900828 发表于 2017-2-3 16:35
请问如何解决这个问题?

mini.open是顶级弹出,你这里面有涉及跨域了吧。
作者: caojun900828    时间: 2017-2-3 17:05:22

felt 发表于 2017-2-3 16:47
mini.open是顶级弹出,你这里面有涉及跨域了吧。

是的,A工程和B工程域不同,请问如何解决这个问题?或者用什么能够替代mini.open?
作者: felt    时间: 2017-2-3 17:14:24

caojun900828 发表于 2017-2-3 17:05
是的,A工程和B工程域不同,请问如何解决这个问题?或者用什么能够替代mini.open? ...

用mini-window,这个是当页弹出
http://www.miniui.com/demo/#src=window/window.html
作者: caojun900828    时间: 2017-2-3 17:29:54

felt 发表于 2017-2-3 17:14
用mini-window,这个是当页弹出
http://www.miniui.com/demo/#src=window/window.html

这种方法,父页面和子页面的代码都是写在一个文件中的,可以独立出来,写url的形式吗?
作者: caojun900828    时间: 2017-2-3 17:33:23

felt 发表于 2017-2-3 17:14
用mini-window,这个是当页弹出
http://www.miniui.com/demo/#src=window/window.html

因为很多地方都使用了弹出页面的方式,代码写在一块儿不好弄
作者: dforce    时间: 2017-2-4 09:10:36

caojun900828 发表于 2017-2-3 17:33
因为很多地方都使用了弹出页面的方式,代码写在一块儿不好弄

mini-window也可以用url引入子页面的
var win=new mini.Window();
win.set({
   width:100,height:100,
   url:"...."
})
win.show();
作者: caojun900828    时间: 2017-2-4 11:01:28

dforce 发表于 2017-2-4 09:10
mini-window也可以用url引入子页面的
var win=new mini.Window();
win.set({

还请教版主2个问题:
1, 这样写法,onload,ondestory方法,传递数据等方式能够和mini.open一样正常使用吗
2,mini-window打开的窗口不能够超出所在的iframe的范围吗?
作者: dforce    时间: 2017-2-4 11:26:28

caojun900828 发表于 2017-2-4 11:01
还请教版主2个问题:
1, 这样写法,onload,ondestory方法,传递数据等方式能够和mini.open一样正常使用 ...

1 mini-window的关闭是隐藏,onload可以一样用。ondestroy需要换成onbuttonclick
2 只能在父页面内移动
作者: caojun900828    时间: 2017-2-4 11:59:08

dforce 发表于 2017-2-4 11:26
1 mini-window的关闭是隐藏,onload可以一样用。ondestroy需要换成onbuttonclick
2 只能在父页面内移动 ...

在子页面,设置的关闭按钮是一个自定义的一个图片,一个<img>标签,具有onclick时间,可以关闭页面,在父页面,如何使用onbuttonclick监听呢?
作者: dforce    时间: 2017-2-4 13:04:57

caojun900828 发表于 2017-2-4 11:59
在子页面,设置的关闭按钮是一个自定义的一个图片,一个标签,具有onclick时间,可以关闭页面,在父页面 ...

无法监听
前面说的onbuttonclick,是指mini-window右上角的按钮事件。
这个请自行跨页面传递到父页面
通用跨页面方法
a页面
top["win"]=window
function aa(){}
b页面
top["win"].aa()
作者: caojun900828    时间: 2017-2-4 14:06:25

dforce 发表于 2017-2-4 13:04
无法监听
前面说的onbuttonclick,是指mini-window右上角的按钮事件。
这个请自行跨页面传递到父页面

在跨域的情况下,无法使用top['win'],这种方式的吧?如果子页面咋关闭的时候,父页面调用子页面的方法,从而获取数据,怎么办?
作者: dforce    时间: 2017-2-4 15:43:56

caojun900828 发表于 2017-2-4 14:06
在跨域的情况下,无法使用top['win'],这种方式的吧?如果子页面咋关闭的时候,父页面调用子页面的方法, ...

原生js并不支持跨域,所以我们对跨域也没有处理。
你可以网上查一下跨域处理的方法
http://www.cnblogs.com/2050/p/3191744.html
作者: caojun900828    时间: 2017-2-4 16:05:19

dforce 发表于 2017-2-4 15:43
原生js并不支持跨域,所以我们对跨域也没有处理。
你可以网上查一下跨域处理的方法
http://www.cnblogs.c ...

好的,谢谢版主!
作者: caojun900828    时间: 2017-2-4 16:11:22

dforce 发表于 2017-2-4 13:04
无法监听
前面说的onbuttonclick,是指mini-window右上角的按钮事件。
这个请自行跨页面传递到父页面

我是这样写的,
父页面访问子页面,使用
win.set({
    url:'',
    ...
    onload:function(){
        var iframe = this.getIFrameEl();
        iframe.contentWindow.SetData({id:id});
    }
});
子页面访问父页面,使用:
parent.func(data);
func(),是定义在父页面的方法,可以将数据data传递给父页面




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2