日期:2014-05-16  浏览次数:20367 次

js疑难杂症

引用:Dialog.js文件,弹出窗口

单独运行的时候正常,嵌入frameset中就提示:

var bgdiv = pw.$("_DialogBGDiv"); 对象不支持此属性方法



------解决方案--------------------
光这样看是无法解释出来的了,最好上代码以及使用什么框架,还有是在什么时候执行上面那段代码都解释清楚。。

一般来说遇到这种情况就需要考虑清楚IE里iframe其他网页会改变被嵌入网页的dom,你从这个角度去考虑问题试试看吧。
------解决方案--------------------
貌似这个插件不支持框架吧
------解决方案--------------------
http://jqueryui.com/demos/dialog/
------解决方案--------------------
$E.getTopLevelWindow = function(){
var pw = window;
while(pw!=pw.parent){//如果存在框架 则获取顶层框架的WINDOW对象
pw = pw.parent;
}
return pw;
}

Dialog.prototype.show = function(){
var pw = $E.getTopLevelWindow();//存在框架 PW是顶层框架的WINDOW对象

var bgdiv = pw.$("_DialogBGDiv");//顶层框架页面没有加载这个脚本文件 所以不存在$方法,所以报错

不知道为什么这么写 我没看懂