Extjs - 为选项卡生成唯一的 url

2024-05-12

据我了解,ExtJS 使用 AJAX 进行所有服务器端通信,并且理想情况下每个应用程序只有一页。但我正在探索为 ExtJS 选项卡生成唯一 URL 的可能性,然后用户可以从地址栏复制该 URL 以供以后使用(传统 Web 应用程序方法 - 使页面可添加书签)。如果有人做过类似的事情,请告诉我。


您可以利用“哈希”。这是 URL 中“#”字符后面的部分。

如果您只需要在页面加载时对哈希做出反应以支持书签功能,那么您可以使用以下方法:

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 单例承诺提供与此类似的功能。然而,从 ExtJS 3.3.1 开始,它还没有支持 hashchange 事件,而是完全依赖于轮询间隔和隐藏的 iframe hack。我对其在现代浏览器(尤其是 IE)中的性能并不满意,直到我重写它以在可用的情况下使用 hashchange。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Extjs - 为选项卡生成唯一的 url 的相关文章

随机推荐

  • 仅从 tsv 中的列索引生成“特殊”字典结构

    想象一下这样一个制表符分隔的文件 9606 1 GO 0002576 TAS platelet degranulation Process 9606 1 GO 0003674 ND molecular function z Function
  • JTextArea - 双击/三次单击 + 移动鼠标的选择行为

    问题 当您双击 JTextArea 中的单词时 它会被标记 但是当您不释放鼠标按钮并尝试标记下一个单词时 它不会标记整个单词 而是标记单个字符 移动鼠标 双击 时 它应该标记整个单词 而不是单个字符 这实际上是我尝试过的所有程序的默认行为
  • Ajax.BeginForm 无法与 Html.ValidationSummary 一起使用

    我正在尝试使用 Ajax BeginForm 将数据发布到控制器 如果出现特定错误 表单应重新呈现并显示添加到 ModelState 的自定义错误消息 由于某种原因 错误消息未显示 我什至正在尝试以下不起作用的测试用例 我是否遗漏了什么 E
  • 初始化二维数组

    我正在尝试初始化一个二维数组 其中每个元素的类型是char 到目前为止 我只能通过以下方式初始化这个数组 public class ticTacToe private char table public ticTacToe table 0
  • Magento Connect Manager 和 ftp 写入文件权限

    将我的网站从开发域转移到实时域后 我尝试使用 magento 连接管理器安装扩展 但是我不断收到 CONNECT ERROR Please check for sufficient ftp write file permissions Yo
  • 以编程方式启动 Scala REPL?

    我想从命令行启动 Scala Swing 应用程序 然后在应用程序启动后 放入 Scala REPL 中以用作控制界面 理想情况下 我还想预先绑定一些变量名称 更好的是使用 REPL 的 Java2D 终端模拟器 但我找不到任何合适的东西
  • 如何修复从 React 对 Elasticsearch 进行 API 调用时的“混合内容:”错误

    我正在使用 firebase 的 elasticsearch 的 bitnami 版本 我发现它只能连接到http并不是https当我使用邮递员尝试时 我的create react app已部署到 firebase 我得到Mixed Con
  • 选择排序,对于 Java

    我无法理解这个伪代码并将其实现到我的程序中 有人可以更好地解释它或向我展示代码的外观吗 谢谢 A an array containing the list of numbers numItems the number of numbers
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • jquery 查找下一个带有类的元素

    我试图找到下一个具有 错误 类别的元素并碰壁 在查看 jQuery 网站上的演示时 这应该可以工作 但事实并非如此 button disabled next text this button is disabled div div
  • 更新 DynamoDB 中的多条记录

    如何在单个查询中更新 DynamoDB 中的多条记录 我有一个 csv 文件作为基于 csv 文件的输入 我必须更新数据库中的多条记录 只有一个属性 有可用的 API 吗 或者这可以使用批处理 Spring batch 来完成 Dynamo
  • Tess4j - Pdf 到 Tiff 到 tesseract - “警告:分辨率 0 dpi 无效。使用 70 代替。”

    我正在使用 tess4j net sourceforge tess4j tess4j 4 4 0 并尝试对 pdf 文件进行 OCR 因此 据我了解 我必须首先将 pdf 转换为 tiff 或 png 其中有任何建议吗 我这样做是这样的 t
  • 在discord.py中访问成员的横幅

    我正在制作图像配置文件命令 我想为此访问会员的横幅 我们有什么办法可以在discord py 中做到这一点吗 如果不清楚我所说的横幅是什么意思 那么蓝色背景的图像就是横幅 我想访问它 在discord py v2 0中你可以使用 You m
  • jquery 动态 iframe - !document.write 和 IE 问题

    为什么这在所有浏览器中都有效 除了 IE var iframe var doc iframe contents doc find head append 但是 如果我在 document write 中使用非 jquery 对象 它在 IE
  • 在打字稿中通过 this 从派生类型调用构造函数

    在我的打字稿中 我尝试通过基类中的方法创建 克隆子对象 这是我的 简化的 设置 abstract class BaseClass
  • 如何使用 ggplot2 绘制 NA 间隙

    在 R 的基本绘图中 如果数据系列 ggplot2 中存在 NA 则会绘制间隙 举个例子看看 df data frame x c 1 10 y c 1 10 df 5 7 NA plot df type l 但是 ggplot2 删除了缺失
  • 父属性是否可以设为最终属性,以便子属性无法覆盖

    是否可以使模块 pom 无法覆盖父 pom 中的属性 例如 如果模块 pom 说
  • 如何使用图像生成 SVG 二维码?

    我有一个用于生成 jpeg 和 png 格式的 qrcode 的代码 但也想在 PHP 中生成带有背景图像的 svg qrcode 我正在使用 qrlib php 生成 jpeg 和 png 格式 QRlib php 也支持 SVG 不是吗
  • 如何通过单个mysql查询更新多个表?

    我有两个表 tb1 和 tb2 我必须在用户级别更新两个表的公共列 我对两个表都有一个共同的标准 例如用户名 所以我想这样更新 UPDATE tb1 tb2 SET user level 1 WHERE username Mr X 但不知何
  • Extjs - 为选项卡生成唯一的 url

    据我了解 ExtJS 使用 AJAX 进行所有服务器端通信 并且理想情况下每个应用程序只有一页 但我正在探索为 ExtJS 选项卡生成唯一 URL 的可能性 然后用户可以从地址栏复制该 URL 以供以后使用 传统 Web 应用程序方法 使页