openWindow: function(url) {
$('#mainwindow', top.window.document).empty();//移除指定ID的元素
$.get(url,function(data){//将html作为参数添加到指定的ID
$('#mainwindow',top.window.document).append(data);
console.log(data);
$.parser.parse($('#mainwindow',top.window.document));//解析数据
$('#mainwindow',window.top.document).window({//将数据显示出来
width:800,
height:500,
modal:true
});
})
}
自己编写了一个,但是打开的还是ID的窗口。想更改为顶级窗口。大神指点下。
你的页面很多iframe?
不多,主要想实现的效果就是想得到顶级弹出的窗口。这个窗口会不受其他iframe的限制。达到这个效果
不多,主要想实现的效果就是想得到顶级弹出的窗口。这个窗口会不受其他iframe的限制。达到这个效果
@拍子: 直接把弹窗函数写在顶级窗口,然后top.openWindow就可以了哇。
@幻天芒: 目前我获得不了顶级的弹窗,所以在页面上从新设定了一个<div id="mainwindow">.以此来做为一个点想打开一个顶级的弹窗。目前是这边面困住了。
用什么方式写出来比较好么?或者有其他打开顶级弹窗的方式么?
@拍子: 你直接顶层窗口编写一个函数,在子窗口是可以通过top.xxx访问的。
@幻天芒: 目前编写的就是top.window.document.但是还是错误的。
查看页面元素发现当我执行我上面贴代码(openWindow()方法)时,设置的ID会消失。弹出的窗口却是一部分的窗口。没有达到顶层的效果。
问题描述的不清楚。你所谓的根据ID打开顶级窗口的方法。是指不同ID会有不同的窗口?还是只有一个窗口,而你的ID仅仅是提供数据而已?
但是无论如果,你想让你的弹出窗口不受其他iframe的影响,那么你的弹出窗口必须在顶级页面上。如果你不想在顶级页面写死标签代码,那么你的那个
$.fn.window = function(){
//这里可以加一些判断代码判断弹出窗口是否已经创建,比如判断class prop
if(top.$(".prop").length > 0){
//处理代码
//显示窗口
return;
}
//创建窗口容器
var div = document.createelement("div");
div.setAttribute("class","prop");
//简单的使用innerHTML来创建
div.innerHTML = "xxxx";//窗口内部代码
//使用ID数据填充div
...
//完成
top.document.body.appendChild(div);
}
至于其中显示隐藏的代码就视情况加了
问题的关键点在于怎样编写打开这个顶级的窗口。不一定非要按照我的方式来设定固定ID。我的最终目的是弹出个顶级(全局)窗口。