Extjs-为选项卡生成唯一的url
我知道ExtJS使用AJAX进行所有服务器端通信,理想情况下每个应用程序只有一个页面。但我正在探索为ExtJS选项卡生成一个唯一url的可能性,然后用户可以从地址栏中复制该url供以后使用(传统的web应用程序方法-使页面成为可书签页面)。如果有人做过类似的事情,请告诉我。您可以使用“哈希”。这是URL中“#”字符后面的部分 如果您只需要在页面加载时对哈希作出反应以支持书签功能,那么您可以通过以下方式摆脱:Extjs-为选项卡生成唯一的url,extjs,Extjs,我知道ExtJS使用AJAX进行所有服务器端通信,理想情况下每个应用程序只有一个页面。但我正在探索为ExtJS选项卡生成一个唯一url的可能性,然后用户可以从地址栏中复制该url供以后使用(传统的web应用程序方法-使页面成为可书签页面)。如果有人做过类似的事情,请告诉我。您可以使用“哈希”。这是URL中“#”字符后面的部分 如果您只需要在页面加载时对哈希作出反应以支持书签功能,那么您可以通过以下方式摆脱: Ext.onReady(function() { var tabPanel =
Ext.onReady(function() {
var tabPanel = new Ext.TabPanel({
// Configure for use in viewport as needed.
listeners: {
tabchange: function( tabPanel, tab ) {
window.location.hash = '#'+ tab.itemId;
}
}
});
var token = window.location.hash.substr(1);
if ( token ) {
var tab = tabPanel.get(token);
if ( ! tab ) {
// Create tab or error as necessary.
tab = new Ext.Panel({
itemId: token,
title: 'Tab: '+ token
});
tabPanel.add(tab);
}
tabPanel.setActiveTab(tab);
}
});
您还可以选择更进一步,使用大多数浏览器的最新版本中支持的hashchange事件。这将允许您在页面完成加载后,对用户或编程方式更改的哈希作出反应:
if ( 'onhashchange' in window ) {
window.onhashchange = function() {
var token = window.location.hash.substr(1);
// Handle tab creation and activation as above.
}
}
值得注意的是,Ext.History singleton承诺提供与此类似的功能。但是,从ExtJS 3.3.1开始,它还没有得到hashchange事件的支持,而是完全依赖于轮询间隔和隐藏的iframe攻击。我对它在现代浏览器(尤其是IE浏览器)中的性能并不满意,直到我重写它,在可用的地方使用hashchange。我浏览了ExtJS API文档网站,发现它具有生成直接链接的酷功能。例如:是指向将在选项卡中打开的容器类文档的直接链接。这似乎是一个很好的解决我的要求。ExtJS是否为此提供了现成的解决方案?这是ExtJS中实现这一点的唯一方法吗?没有“散列”能做到吗?