同样是在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);
}
}
};
分享到:
相关推荐
首先需要在 HTML 文件中引入 ExtJS 的样式及 ExtJS 库文件,然后使用 Ext.onReady 函数来实现 helloWord 的显示。helloWord 示例程序可以帮助开发者快速上手使用 ExtJS 开发应用程序。 Ext 类库简介 ExtJS 由一系列...
- 将`ext-all.js`和`adapter\ext\ext-base.js`拷贝到`js`目录。 - 将`resources\`中的`images`目录整体拷贝至项目根目录。 **知识点7:编写代码** 在`js`目录下创建`hello.js`,利用`Ext.onReady()`函数确保DOM...
例如,Ext的`Ext.onReady`函数用于确保DOM加载完成后再执行代码,这是初始化Ext组件的常见方法。以下是一个简单的例子,展示如何使用MessageBox组件弹出一个警告对话框: ```html Ext.onReady(function() { Ext....
在这个函数中,我们将使用Canvas API来获取图片的base64编码。 ```javascript image.onload = function() { // 图片加载完成后的操作 }; ``` 3. 在`onload`处理函数中,创建一个新的`canvas`元素,并设置其宽度和...
3. **启动EXT**:使用`Ext.onReady`函数在DOM加载完成后执行EXT的初始化代码,例如弹出一个消息框。 ```javascript Ext.onReady(function() { Ext.MessageBox.alert("你好", "wayfoon"); }); ``` 4. **创建布局...
3. `ExtBase/ext-base.js` - EXT 框架的基础库,提供基本功能。 4. `ExtBase/ext-all.js` - EXT 的核心库,包含所有组件和功能。 5. `ExtBase/ext-all-debug.js` - 用于调试的未压缩版本。 6. `ExtBase/ext-lang-zh_...
接着,`ext22/adapter/ext/ext-base.js`是基础脚本,定义了ExtJS的核心功能和基础类,而`ext22/ext-all.js`包含了完整的ExtJS库,依赖于`ext-base.js`,因此必须先导入。 在创建ExtJS应用时,一个常见的入门示例是...
<script type="text/javascript" src="../../adapter/ext/ext-base.js"> <script type="text/javascript" src="../../ext-all.js"> <script type="text/javascript" src="../../src/locale/ext-base.js"> 消息...
这通常包括CSS样式表`ext/resources/css/ext-all.css`,JavaScript基础文件`ext/adapter/ext/ext-base.js`以及核心库文件`ext/ext-all.js`。通过在HTML中添加相应的`<link>`和`<script>`标签,可以将这些资源链接到...
4. **EXT事件处理**:在登录插件中,开发者可能会使用EXT的事件监听机制,比如在登录按钮上添加`click`事件监听器,当用户点击按钮时触发相应的登录处理函数。 5. **表单验证**:EXT提供了一套完整的表单处理机制,...
例如,在给定的代码示例中,可以看到对`ext-all.css`、`ext-base-debug.js`以及`ext-all-debug.js`等文件的引用。 2. **插入JavaScript代码块**:将Ext Designer生成的代码复制到页面中适当的JavaScript区块。这些...
例如,创建一个简单的EXT应用,如“HelloWorld”测试,需要在HTML文件中引入EXT的相关资源,然后在JavaScript文件中利用EXT的`Ext.onReady`函数来实现功能。如下所示: ```html <!DOCTYPE html> ; charset=utf-8...
<script src="ext-3.2.1/adapter/ext/ext-base.js"> <script src="ext-3.2.1/ext-all.js"> <script type="text/javascript" src="ext-3.2.1/src/locale/ext-lang-zh_CN.js"></script> <script src="ext-3.2.1/...
EXT会利用FileReader对象的`readAsDataURL`方法将图片文件转换为Data URL,这是一个包含图片数据的base64编码字符串,可以插入到`<img>`标签的`src`属性中,实现图片预览。 3. **Image组件**:EXT的`Ext.image`组件...
<script type="text/javascript" src="../adapter/ext/ext-base.js"> <script type="text/javascript" src="../ext-all.js"> ``` 需要注意的是,`<script>` 标签的结束符号必须是 `</script>` 而非 `</script>`...
- **函数名**:首字母大写,后续单词首字母也大写,如 `doSomething`。 - **常量名**:全部使用大写字母,单词之间用下划线分隔,如 `MY_CONSTANT`。 #### 四、实践 Hands-on 在实际开发过程中,除了遵循上述的...
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"> <script type="text/javascript" src="extjs/ext-all.js"> ``` 然后,可以通过`Ext.onReady`函数在页面加载完成后执行特定的JavaScript代码...