Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[已答复] 【分享】修复SupeSite/XSpace4的日志编辑器的bug

[复制链接]
jsj321 发表于 2009-10-21 11:29:49 | 显示全部楼层 |阅读模式
本帖最后由 jsj321 于 2009-10-21 11:33 编辑

昨天发现SupeSite/XSpace4.0的日志编辑器有bug,也就是在IE8下点击“插入表情”、“文本颜色”等的时候是弹出一个新的标签页,而不是弹出模态对话框,并且在弹出的对话框中选择表情的时候报错“dialogArguments is undefined”。

一开始我以为是IE8中不支持dialogArguments 了,但是发现不对,因为IE8下“弹出一个新的标签页,而不是弹出模态对话框”,因为IE8是支持showModelessDialog/showModelessDialog、很显然在IE8下调用的不是showModalDialog或者showModelessDialog,而是window.open,打开编辑器的文件/images/edit/edit.js,看到function oPenWin函数的定义:

  1. function oPenWin(_sTitle, _sWidth, _sHeight, _sUrl, _bDialog, _open){
  2.   xposition=0; yposition=0;
  3.   if ((parseInt(navigator.appVersion) >= 4 )) {
  4.    xposition = (screen.width - _sWidth) / 2;
  5.    yposition = (screen.height - _sHeight) / 2;
  6.   }
  7.     if(_open) {
  8.    window.open(_sUrl,"win","menubar=no,location=no,resizable=no,scrollbars=no,status=no,left="+xposition+",top="+yposition+",width="+_sWidth+",height="+_sHeight);
  9.   } else {
  10.    if(window.Event) {
  11.     window.open(_sUrl,"win","menubar=no,location=no,resizable=no,scrollbars=no,status=no,left="+xposition+",top="+yposition+",innerWidth="+_sWidth+",innerHeight="+_sHeight);
  12.    } else {
  13.     if(_bDialog == true) {
  14.      showModelessDialog(_sUrl, window, "dialogHeight:"+(_sHeight+20)+"px;dialogWidth:"+_sWidth+"px;status:no;help:no;resizable:yes;status:no;tustatus:no;");
  15.     } else {
  16.      showModalDialog(_sUrl, window, "dialogHeight:"+(_sHeight+20)+"px;dialogWidth:"+_sWidth+"px;status:no;help:no;resizable:yes;status:no;tustatus:no;");
  17.     }
  18.    }
  19.   }

复制代码
不知道它在哪判断来判断去到底是调用window.open还是showModelessDialog还是showModalDialog是在做什么,用这么复杂吗?直接调用showModalDialog/showModelessDialog不就行了吗?反正你调用window.open在对话框中也没法用dialogArguments (因为用window.open打开的窗口是得不到dialogArguments 的)。

所以修改如下,在if(_open) {上增加:

  1.   if(_bDialog == true)
  2.   {
  3.    showModelessDialog(_sUrl, window, "dialogHeight:"+(_sHeight+20)+"px;dialogWidth:"+_sWidth+"px;status:no;help:no;resizable:yes;status:no;tustatus:no;");
  4.   } else
  5.    {
  6.    showModalDialog(_sUrl, window, "dialogHeight:"+(_sHeight+20)+"px;dialogWidth:"+_sWidth+"px;status:no;help:no;resizable:yes;status:no;tustatus:no;");
  7.   }  
  8.   return;
复制代码
搞定!

演示地址: http://www.rupeng.com/

评分

1

查看全部评分

回复

使用道具 举报

lidq.jingwu 发表于 2009-10-21 11:38:28 | 显示全部楼层
支持一个
回复

使用道具 举报

njjackieee 发表于 2009-10-21 15:06:19 | 显示全部楼层
顶一个ing。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-15 06:46 , Processed in 0.103748 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表