`
y1d2y3xyz
  • 浏览: 256636 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

extjs源码分析-009(Ext.urlDecode/urlEncode)

阅读更多
//把json格式转化成url的编码方式
// e.g. Ext.urlEncode({foo: 1, bar: 2}); would return "foo=1&bar=2"
urlEncode: function(o, pre){//o为json对象,pre为前缀
            var undef, buf = [], key, e = encodeURIComponent;

            for(key in o){
                undef = !Ext.isDefined(o[key]);
                Ext.each(undef ? key : o[key], function(val, i){
                    buf.push("&", e(key), "=", (val != key || !undef) ? e(val) : "");
                });
            }
            if(!pre){
                buf.shift();
                pre = "";
            }
            return pre + buf.join('');
        },
//把URL字符串编码转化成json对象
//Ext.urlDecode("foo=1&bar=2"); // returns {foo: "1", bar: "2"}
//Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", false); // returns {foo: "1", bar: ["2", "3", "4"]}

urlDecode : function(string, overwrite){//string URL参数,overwrite针对同一参数的多个值是否覆盖,false为不覆盖,那就返回这个参数的数组
            var obj = {},
                pairs = string.split('&'),
                d = decodeURIComponent,
                name,
                value;
            Ext.each(pairs, function(pair) {
                pair = pair.split('=');
                name = d(pair[0]);
                value = d(pair[1]);
                obj[name] = overwrite || !obj[name] ? value :
                            [].concat(obj[name]).concat(value);
            });
            return obj;
        }

分享到:
评论

相关推荐

    Extjs源码之--Ext事件机制/继承关系

    在“Extjs源码之--Ext事件机制/继承关系”中,我们将深入探讨EXTJS如何处理事件以及其类层次结构。EXTJS的事件处理主要由EventManager.js这个文件负责,它是EXTJS事件系统的基础。 首先,EXTJS的事件机制基于观察者...

    extjs-Ext.ux.form.LovCombo下拉框

    标题中的"extjs-Ext.ux.form.LovCombo下拉框"表明我们要讨论的是EXTJS中的一个特定组件,它是EXTJS的扩展插件,用于实现具有多选功能的下拉框。这个组件在处理火狐浏览器兼容性问题上做了优化,解决了在火狐浏览器下...

    ExtJs学习资料28-Ext.data.JsonStore数据存储器.doc

    document.write("<script type=\"text/javascript\" src=\"../extjs/adapter/ext/ext-base.js\"></script>"); document.write("<script type=\"text/javascript\" src=\"../extjs/ext-all.js\"></script>"); ...

    json,xstream,ezmorph jar包

    //extjs的jsp标签库及使用实例 exttld1.0.zip exttldbasic.zip exttld1.0-beta.zip exttldexamples.zip //json的转换器及帮助 ezmorph-1.0.6.jar ezmorph-1.0.6-javadoc.jar //java将数据类型转为json格式及帮助 ...

    ext-4.2.1.883.jsb2

    从spket IDE 官网下载。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.*版本。spket自动提示ExtJs4,需要ext4.2.1.jsp2文件。

    Ext3.1 21款精美主题和动态换皮肤

    Ext动态换皮肤 1、在页面中增加一个放样式文件的地方: <link rel="stylesheet" type="text/css" href="ext/2.0/resources/css/ext-all.css" /> <script type="text/javascript" src="ext/2.0/adapter/ext/ext-...

    ext4.js 打包 最新文件

    1Extjs打包 1.1Sencha Cmd下载 地址:https://www.sencha.com/products/extjs/cmd-download/ 注意:Extjs4.XX的只能用,Sencha Cmd 4.0.5 (Windows) 来打包,不然运行的时候会报错 需要JDK1.6 或 JDK1.7,测试用1.8...

    Extjs-ext-3.1.1

    Ext JS - JavaScript Library Copyright (c) 2006-2009, Ext JS, LLC All rights reserved. licensing@extjs.com http://extjs.com/license Open Source License Ext is licensed under the terms of the Open ...

    extjs4.1-ux.rar

    Extjs4.1多个扩展 1、Ext.ux.aceeditor.Panel 2、Ext.ux.grid.feature.Tileview 3、Ext.ux.upload.Button ...主页:https://github.com/harrydeluxe/extjs-ux 注明:在Extjs4.1上是可以使用的,Extjs4.2部分会有问题。

    ext-2.2.zip

    在CDH使用oozie 的时候需要安装ext-2.2.zip; 新增和改进的功能包括: 1、FileUploadField 文件上传 体验例子见:http://extjs.com/deploy/dev/examples/form/file-upload.html 2、GMapPanel GMap扩展 体验...

    extjs-docs-6.0.0-classic.part01.rar

    Ext JS 6最大的变化就是将Ext JS和Touch合并为一个单一的框架。之前的框架的核心(数据、控制器、模型等等)已被调和为一个单一的公共平台。这样,数据和逻辑就能共享,从而帮助开发人员进一步去优化他们的应用程序...

    ExtJs组件类的对应表

    ### ExtJs组件类的对应表解析 #### 引言 ExtJs是一款强大的JavaScript框架,用于构建复杂的、数据密集型的应用程序。它提供了大量的组件和工具,使得开发者能够快速地创建美观且功能丰富的用户界面。本文将详细...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    extjs jsb文件(ext-4.2.1.883.jsb2)

    从ext官方论坛上下的。 文件名: ext-4.2.1.883.jsb2 对应版本ext-4.2.1.883

    Ext JS 4.0编码规范

    - `/dir/to/js/extjs/ext-4.0.x/src`:Ext JS 源代码,供 `ext.js` 和 `ext-debug.js` 动态加载使用。 - `/dir/to/js/extjs/ext-4.0.x/bootstrap.js`:推荐用于引入 Ext JS 库的加载文件。 - `/dir/to/js/extjs/...

    ExtJS-3.4.0系列:Ext.TabPanel

    在本文中,我们将深入探讨ExtJS中的`Ext.TabPanel`组件,它是创建多标签界面的核心元素。`Ext.TabPanel`允许开发者在单个容器中组织多个面板或视图,每个面板都有自己的标题,并且可以通过标签页进行切换。让我们...

    ExtJS 自定义分页控件---- PM3PagingToolbar.js

    在 ExtJS3.3基础上开发的. 低一点的版本应该也能用. 没有去测试. 参考: Ext.PagingToolbar.js 如有BUG还请各位提出或留言. 附件中有图片, 一看就知道. 用法: var grid = new Ext.grid.GridPanel({ bbar: new Ext....

    Extjs 6.2 最新sdk ext-6.2.0-gpl.zip

    官方最新版本Extjs6.2版本sdk,创建新项目的时候需要用, 全面的核心框架,具有最新的Javascript标准支持 新的漂亮组件和主题,以创建漂亮的企业应用程序 现代工具链,用于构建优化,高性能,通用的应用程序 用于可视...

    jasmine-node-jsdom-extjs-testing-tool:使用 jasmine-node 和 jsdom 的功能性前端 Ext.JS 测试自动化工具

    茉莉花节点jsdom-extjs-testing-tool 使用 jasmine-node 和 jsdom 的功能性前端 Ext.JS 测试自动化工具如果您已经安装了节点包模块( ),安装将为您获取所需的库。Ext.JS 设置使用 Ext.JS 包并遵循 Sencha cmd 企业...

    extjs xtype

    EXTJS提供了多种预定义的`vtype`验证规则,如`email`(验证电子邮件格式)、`url`(验证URL格式)、`number`(验证数字)等。这些验证规则可以应用于`Ext.form.field.Field`的子类,如`Ext.form.TextField`,以确保...

Global site tag (gtag.js) - Google Analytics