extjs 如何关闭当前整个网页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了extjs 如何关闭当前整个网页相关的知识,希望对你有一定的参考价值。

extjs 如何关闭当前整个网页 就如同JS中的window.close();的方法 关闭的是当前的整个界面,而不是window,不是标签页等

Extjs中关闭整个页面需要用parent对象窗口打开的window对象。
例如:
有a,b两个页面,a页面为主页面,有按钮一个,点击按钮弹出一个windows对象,在其中显示b页面。b页面中也有一个按钮,点击关闭窗口。
a.htm (部分代码)
<script type="text/javascript">
function openWindow(id,title,url,width,height)
var win = Ext.get(id)
if (win)
win.close();
return;

win = new Ext.Window(
id:id,
title:title,
layout:'fit',
width:width,
height:height,
closeAction:'close',
collapsible:true,
plain: false,
resizable: true,
html : ''
);
win.show();


function myfunction()
openWindow('b-win','窗口中打开b页面','b.htm',400,300);

</script>
<input type="button" name="button1" value="打开窗口" onClick="myfunction()">

b.htm(部分代码)
<script type="text/javascript">
function closewin()
var win = parent.Ext.getCmp('b-win');
if (win) win.close();

</script>
<input type="button" name="button1" value="关闭a打开的窗口" onClick="closewin()">
参考技术A 如果是需要把所有extjs的组件关闭的话,你可以找到最底层的容器组件,比如viewport或者container。(跟实际情况有关),然后使用容器的destroy()方法,这样就可以关闭所有的组件了。希望能帮到你!追问

你这个是销毁EXTJS的组件 但是我现在想实现的是关闭当前你正在使用的这个网页,整个网页。就像是在google浏览器按F12 进入console 输入window.close() 的效果是一样的

追答

我自己尝试了一下,发现只有通过用户点击或者javascript打开的新窗口才能使用window.close()关闭。w3school上的手册里这样解释:只有通过 JavaScript 代码打开的窗口才能够由 JavaScript 代码关闭。这阻止了恶意的脚本终止用户的浏览器。

参考技术B extjs是一个js框架,可以理解为,是js的扩充和完善,它本身就是js代码,那么你以前的js代码都可以在extjs使用。所以你的window.close()还是可以使用。
extjs没关闭浏览器的方法。追问

我开始也是这么认为的 但是很不幸 window.close()方法是关闭不了整个网页的 所以我才来问问有没有什么方法可以关闭整个网页的 Extjs中window.location.href这种属性都是好使的 但是window.close()方法不好使

追答

我上面给你纠正了下概念。
你的回应里面还是要纠正,window.location.href还是原生的javascript,这是超链接的意思。不是用了extjs框架,所有的都是extjs的了。
好了说你的需求
如果浏览器只打开了你的1网页,然后1网页里面打开2网页,能找到opener的,那么,还是可以关掉的。
但是浏览器如果开了一个百度标签页,再开了你的1网页,2网页标签页,是无法做到点击你自己网页里面的按钮将百度那个标签页关闭掉的。

追问

我说的意思就是要关闭我当前的页面 就跟点X按钮一样的效果 在Extjs中使用window.close();
是关闭不了当前页面的。 我想实现的功能就是点击EXTJS的按钮可以关闭此网页 就像是点X了一样的

追答

我知道了,你说的tab是extjs的tanpanel,我还以为是浏览器的标签页。

好了,给你关闭当前网页的js代码,我测试过了,可用的。

function CloseBrowser() 
    var browserName=navigator.appName; 
    alert(browserName);
    if (browserName=="Netscape") 
     
        self.opener=null;
        self.open('','_self');
        self.close();
     
    if (browserName=="Microsoft Internet Explorer") 
     
        window.opener = "whocares"; 
        window.close(); 
     

本回答被提问者和网友采纳

以上是关于extjs 如何关闭当前整个网页的主要内容,如果未能解决你的问题,请参考以下文章

如何在 extjs4.1 中使用 rest webservice [关闭]

在 ExtJS 4.1 中单击外部窗口时如何关闭窗口?

c#里面如何显示下一个窗体而关闭当前窗体?

ExtJS4 窗口在 IE 中不关闭

extjs 定义window时右上角有一个关闭按钮,点击时是隐藏操作,如何让它关闭操作?

ExtJS弹出框层次问题