`
rikugun
  • 浏览: 350299 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Ext base64函数

    博客分类:
  • Js
阅读更多
同样是在Extjs 论坛弄来的
原帖
http://extjs.com/forum/showthread.php?p=167166#post167166

Ext.util.base64 = {

    base64s : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
    
    encode: function(decStr){
        if (typeof btoa === 'function') {
             return btoa(decStr);            
        }
        var base64s = this.base64s;
        var bits;
        var dual;
        var i = 0;
        var encOut = "";
        while(decStr.length >= i + 3){
            bits = (decStr.charCodeAt(i++) & 0xff) <<16 | (decStr.charCodeAt(i++) & 0xff) <<8 | decStr.charCodeAt(i++) & 0xff;
            encOut += base64s.charAt((bits & 0x00fc0000) >>18) + base64s.charAt((bits & 0x0003f000) >>12) + base64s.charAt((bits & 0x00000fc0) >> 6) + base64s.charAt((bits & 0x0000003f));
        }
        if(decStr.length -i > 0 && decStr.length -i < 3){
            dual = Boolean(decStr.length -i -1);
            bits = ((decStr.charCodeAt(i++) & 0xff) <<16) |    (dual ? (decStr.charCodeAt(i) & 0xff) <<8 : 0);
            encOut += base64s.charAt((bits & 0x00fc0000) >>18) + base64s.charAt((bits & 0x0003f000) >>12) + (dual ? base64s.charAt((bits & 0x00000fc0) >>6) : '=') + '=';
        }
        return(encOut);
    },
    
    decode: function(encStr){
        if (typeof atob === 'function') {
            return atob(encStr); 
        }
        var base64s = this.base64s;        
        var bits;
        var decOut = "";
        var i = 0;
        for(; i<encStr.length; i += 4){
            bits = (base64s.indexOf(encStr.charAt(i)) & 0xff) <<18 | (base64s.indexOf(encStr.charAt(i +1)) & 0xff) <<12 | (base64s.indexOf(encStr.charAt(i +2)) & 0xff) << 6 | base64s.indexOf(encStr.charAt(i +3)) & 0xff;
            decOut += String.fromCharCode((bits & 0xff0000) >>16, (bits & 0xff00) >>8, bits & 0xff);
        }
        if(encStr.charCodeAt(i -2) == 61){
            return(decOut.substring(0, decOut.length -2));
        }
        else if(encStr.charCodeAt(i -1) == 61){
            return(decOut.substring(0, decOut.length -1));
        }
        else {
            return(decOut);
        }
    }

}; 

分享到:
评论

相关推荐

    Ext框架简介-Ext框架简介

    首先需要在 HTML 文件中引入 ExtJS 的样式及 ExtJS 库文件,然后使用 Ext.onReady 函数来实现 helloWord 的显示。helloWord 示例程序可以帮助开发者快速上手使用 ExtJS 开发应用程序。 Ext 类库简介 ExtJS 由一系列...

    ext入门必学

    - 将`ext-all.js`和`adapter\ext\ext-base.js`拷贝到`js`目录。 - 将`resources\`中的`images`目录整体拷贝至项目根目录。 **知识点7:编写代码** 在`js`目录下创建`hello.js`,利用`Ext.onReady()`函数确保DOM...

    Ext教程ext2-Ext简易教程

    例如,Ext的`Ext.onReady`函数用于确保DOM加载完成后再执行代码,这是初始化Ext组件的常见方法。以下是一个简单的例子,展示如何使用MessageBox组件弹出一个警告对话框: ```html Ext.onReady(function() { Ext....

    Javascript将图片的绝对路径转换为base64编码的方法

    在这个函数中,我们将使用Canvas API来获取图片的base64编码。 ```javascript image.onload = function() { // 图片加载完成后的操作 }; ``` 3. 在`onload`处理函数中,创建一个新的`canvas`元素,并设置其宽度和...

    ext实例 ext操作步骤

    3. **启动EXT**:使用`Ext.onReady`函数在DOM加载完成后执行EXT的初始化代码,例如弹出一个消息框。 ```javascript Ext.onReady(function() { Ext.MessageBox.alert("你好", "wayfoon"); }); ``` 4. **创建布局...

    EXT API简介,并附带学习案例(JAVA)

    3. `ExtBase/ext-base.js` - EXT 框架的基础库,提供基本功能。 4. `ExtBase/ext-all.js` - EXT 的核心库,包含所有组件和功能。 5. `ExtBase/ext-all-debug.js` - 用于调试的未压缩版本。 6. `ExtBase/ext-lang-zh_...

    Ext介绍以及_ext页面布局

    接着,`ext22/adapter/ext/ext-base.js`是基础脚本,定义了ExtJS的核心功能和基础类,而`ext22/ext-all.js`包含了完整的ExtJS库,依赖于`ext-base.js`,因此必须先导入。 在创建ExtJS应用时,一个常见的入门示例是...

    Ext原理.txt

    &lt;script type="text/javascript" src="../../adapter/ext/ext-base.js"&gt; &lt;script type="text/javascript" src="../../ext-all.js"&gt; &lt;script type="text/javascript" src="../../src/locale/ext-base.js"&gt; 消息...

    ext的课件,ppt版,适合有面向对象基础人士

    这通常包括CSS样式表`ext/resources/css/ext-all.css`,JavaScript基础文件`ext/adapter/ext/ext-base.js`以及核心库文件`ext/ext-all.js`。通过在HTML中添加相应的`&lt;link&gt;`和`&lt;script&gt;`标签,可以将这些资源链接到...

    ext简单登录css/js插件

    4. **EXT事件处理**:在登录插件中,开发者可能会使用EXT的事件监听机制,比如在登录按钮上添加`click`事件监听器,当用户点击按钮时触发相应的登录处理函数。 5. **表单验证**:EXT提供了一套完整的表单处理机制,...

    Ext_Designer生成代码的使用

    例如,在给定的代码示例中,可以看到对`ext-all.css`、`ext-base-debug.js`以及`ext-all-debug.js`等文件的引用。 2. **插入JavaScript代码块**:将Ext Designer生成的代码复制到页面中适当的JavaScript区块。这些...

    EXT 完美教程

    例如,创建一个简单的EXT应用,如“HelloWorld”测试,需要在HTML文件中引入EXT的相关资源,然后在JavaScript文件中利用EXT的`Ext.onReady`函数来实现功能。如下所示: ```html &lt;!DOCTYPE html&gt; ; charset=utf-8...

    ext表格布局小例子

    &lt;script src="ext-3.2.1/adapter/ext/ext-base.js"&gt; &lt;script src="ext-3.2.1/ext-all.js"&gt; &lt;script type="text/javascript" src="ext-3.2.1/src/locale/ext-lang-zh_CN.js"&gt;&lt;/script&gt; &lt;script src="ext-3.2.1/...

    ext图片上传前预览小demo

    EXT会利用FileReader对象的`readAsDataURL`方法将图片文件转换为Data URL,这是一个包含图片数据的base64编码字符串,可以插入到`&lt;img&gt;`标签的`src`属性中,实现图片预览。 3. **Image组件**:EXT的`Ext.image`组件...

    ext js学习文档

    &lt;script type="text/javascript" src="../adapter/ext/ext-base.js"&gt; &lt;script type="text/javascript" src="../ext-all.js"&gt; ``` 需要注意的是,`&lt;script&gt;` 标签的结束符号必须是 `&lt;/script&gt;` 而非 `&lt;/script&gt;`...

    Ext JS 4.0编码规范

    - **函数名**:首字母大写,后续单词首字母也大写,如 `doSomething`。 - **常量名**:全部使用大写字母,单词之间用下划线分隔,如 `MY_CONSTANT`。 #### 四、实践 Hands-on 在实际开发过程中,除了遵循上述的...

    Ext框架简介.ppt

    &lt;script type="text/javascript" src="extjs/adapter/ext/ext-base.js"&gt; &lt;script type="text/javascript" src="extjs/ext-all.js"&gt; ``` 然后,可以通过`Ext.onReady`函数在页面加载完成后执行特定的JavaScript代码...

Global site tag (gtag.js) - Google Analytics