jQuery插件jQuery.AsyncBox使用总结
2013-09-20 14:28 阅读(193)

1、弹出页中再次弹出窗口,比如alert.

parent.alert('Hello AsyncBox !','New Title');  
或者  
parent.alert('Hello AsyncBox !','New Title',function(action){  
   //alert 返回两个 action 值,分别是 'ok' 和 'close'。  
   if(action == 'ok'){  
     alert('ok');  
   }  
   if(action == 'close'){  
     alert('close');  
   }  
 });  
2、重新reload弹出页
parent.$.reload("id");  
或者  
parent.$.reload("弹出页id","http://www.baidu.com");  
3、弹出页中reload父页面

window.location.reload();
4、弹出页中获取父页面的元素值

window.parent.document.getElementById("父页面id").value
5、弹出页中执行父页面的方法

window.parent.seeFile(data.id);
6、弹出页打开新页面之后,获取新页面中的元素

_p.open({  
    id : "弹出页ID" ,  
    modal: true,  
    url: "www.baidu.com",  
    btnsbar:$.btn.OKCANCEL,  
    callback : function(b){  
        $.opener("弹出页ID").$('input[name="百度中的某元素名称"]:checked').val();  
    }  
});  



常见问题:


可以在项目中使用 AsyncBox 吗?

可以。在遵循相关协议的条件下,AsyncBox 无偿的提供给大家永久免费使用权。详情可以阅读许可协议。

为什么在调用 AsyncBox 时中文会出现乱码?

AsyncBox 的文件编码是 UTF-8 的,在遇到其他编码类型时可能会出现乱码现象,解决办法可以在引用 AsyncBox 时加上 charset="utf-8"。例如:<script type="text/javascript" src="AsyncBox.js" charset="utf-8"></script>

为什么 AsyncBox 不支持“if(asyncbox.confirm('Are you ok?')){...}else{...}”这种判断方式?

AsyncBox 对事件的操作是通过回调函数实现的,模拟不了阻塞,所以无法支持这种调用方式。

为什么 AsyncBox 不支持“最大化”?

很遗憾,在历来更新 AsyncBox 中都没有提到支持“最大化”,但是可以通过 width、height 配置一个全屏的窗口,在 resize 中使用 $.size 修复。这样至少可以弥补一下缺陷。另外 AsyncBox 当然不会放弃这个支持,在往后的版本中将看到。

AsyncBox 支持 IPAD 移动设备浏览吗?

目前 AsyncBox 对手机浏览产生的不理想效果没有做相关定制。不建议在 IPAD 移动设备中使用 AsyncBox 集成开发。

为什么 AsyncBox 在 windows 7 系统下字体会显得很粗糙?

系统本身对中文字体的解析就那样。如果想达到更理想的视觉效果,可以了解相关的系统美化资源。

为什么 AsyncBox 在内容页中不能第一时间直接调用?

在内容页或者在 iframe 内中不需要事件触发调用 AsyncBox 时,例如“parent.asyncbox.alert('Hello AsyncBox !');”,这样会报“缺少对象”的错误,原因是内容页未加载完毕。解决方案为:setTimeout(function(){parent.asyncbox.alert('Hello AsyncBox !');},1000); 推荐延迟加载,尽量避免 AsyncBox 和页面同时加载,既等页面加载完毕后再弹出也不迟。

为什么在项目中载入 AsyncBox 后窗口布局会变得凌乱?

AsyncBox 的构建内核使用了 table 和 部分 a 标签,如果你对 table 和 a 标签进行了全局样式设置的话,可能会对 AsyncBox 造成影响。虽然 AsyncBox 也内置固化了部分样式,但总的来说设置全局样式并不是很好的编码习惯,所以建议尽量避免定义全局样式的写法。

为什么对话框的内容不能换行?

避免内容出现连续没有空格的字符串,如 “StringStringStringStringStringStringString...”。

为什么 AsyncBox 不能遮住 FLASH?

FLASH 相对比较特殊,如果需要遮住它的话,由开发人员决定在引用 FLASH 时是否加入 <param name="WMode" value="Transparent"> 参数。

为什么 AsyncBox 出现靠左上角,不能拖动?

缺少文档声明<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">。另外,避免在声明顶部出现 UFO。

为什么透明类的皮肤在 IE6 下显示不出来?

AsyncBox 目前就内置了一款 ZCMS 的透明皮肤,在 IE6 下需要对 asyncbox.css 文件中注释为 /*ie6 filter*/ 下的路径做绝对于当前页面的路径配置。例如:src='asyncbox/skins/ZCMS/images/ie6/dialog_lt.png',asyncbox.html && asyncbox文件夹,即文档页面与 asyncbox 文件夹呈同级目录。

为什么出现 “asyncbox 未定义”或者其他未定义错误?

出现此类错误,请检查你配置的插件路径是否正确。

为什么按钮按下后变为不可用状态了?

按钮做了 disabled 处理,简单保证了事件单次执行,避免重复执行。执行完毕后会变为可用状态。如果按钮按下后变为不可用,那说明在执行的过程中出错了,请检查你的代码。

为什么会报 “缺少标识符、字符串或数字” 或 “未结束的字符串常量”?

IE 下在配置 $.open(...) 参数时避免参数配置中缺少逗号或者最后一个参数后面出现逗号。

CHM 帮助文档无法显示?

关于 CHM 帮助文档无法显示问题,由于系统安全性的影响,可能会造成某些 CHM 帮助文档无法显示页面内容。

解决方法:

1)右键文档 - 解除锁定。

2)打开文档时选择“运行”。

如还未能解决就百度或谷歌了。

AsyncBox 关闭不了或关闭不“完整”?

检查是否存在相同的ID。


操作流程遇到的问题:

如何取得当前 AsyncBox 窗口ID?

AsyncBox 的回调函数处理机制为 callback 在 callback 中可以使用 this.id 得到当前 AsyncBox 的 ID。如果该 AsyncBox 被嵌套使用,那么 this 对象会被子 AsyncBox 覆盖,此时需得到正确的 ID ,则需将 this 对象存起来,例如:var id = this.id; 再用。

另外对话框类窗口ID为 asyncbox_ + [alert,confirm,success,error,prompt]。

如何在 AsyncBox 窗口中提交表单?

可以用自带的按钮操作子页面,也可以在子页面中自己新建按钮,但记住的是:页面刷新的话就调用不了部分JS了。

操作 AsyncBox 后如何刷新页面?

在判断 action 值内加入需要刷新页面的代码“window.location.reload()”。内容页刷新父页面:“top.window.location.reload()"。如何刷新页面?

如何在程序后台中调用 AsyncBox?

通过 AJAX。