我在InnovaStudio WYSIWYG编辑器(5.3)中有一个iframed“弹出窗口”窗口。它用于放置从导航到文本的链接。单击链接后,弹出窗口应该关闭。
此代码适用于除Internet Explorer 9以外的所有浏览器:
$('#InternalLinkSelector').find('a').click(function(e) {
e.preventDefault();
$this = $(this);
(opener ? opener:openerWin).oUtil.obj.insertLink($this.attr('href'), $this.html(), null, null);
self.close();
});
弹出窗口在上角有自己的关闭按钮,调用ISWindow.objs['
UNIQUE_ID_STRING '].close();
。我尝试重写代码以使用ISWindow
,但它表现出相同的行为,适用于除IE9之外的所有浏览器:
$('#InternalLinkSelector').find('a').click(function(e) {
e.preventDefault();
$this = $(this);
(opener?opener:openerWin).oUtil.obj.insertLink($this.attr('href'), $this.html(), null, null);
// Find the window object to close it
for (var i in top.ISWindow.objs) {
if ('function' == typeof top.ISWindow.objs[i].close) {
top.ISWindow.objs[i].close();
}
}
});
答案 0 :(得分:2)
尝试使用window.close()
代替self.close()
答案 1 :(得分:2)
我使用console.log(self.close)
并在InnovaStudio的istoolbar.js
代码中跟踪这些行:
me.rt.frm.contentWindow.closeWin=function() {
me.close();
};
me.rt.frm.contentWindow.close=function() {
me.close();
};
因此,考虑到IE9可能由于某种原因未能看到close()
,我将代码更改为使用closeWin()
:
$('#InternalLinkSelector').find('a').click(function(e) {
e.preventDefault();
$this = $(this);
(opener ? opener : openerWin).oUtil.obj.insertLink($this.attr('href'), $this.html(), null, null);
self.closeWin();
});
现在有效!