随笔 - 124  文章 - 0 评论 - 511 trackbacks - 9
<2006年1月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

与我联系

搜索

 

常用链接

留言簿(10)

我参加的小组

我参与的团队

随笔分类

随笔档案

相册

收藏夹

博客链接

技术站点

社区推荐

积分与排名

  • 积分 - 172113
  • 排名 - 208

最新评论

阅读排行榜

评论排行榜

昨天下了MagicAjax0.2.2-release看了看Example觉得还算不错,打开MA跟随的Docs看了看,然后打开VS2005准备操刀一下。

因为使用MA的无刷新效果总是在浏览器的可见客户区的右上角出现一个Loading ...的提示条,但自己觉得颜色不是很好看,想改一下,发现MA是把scripts都搞到dll里去了,然后通过实现httpModules把scripts再Export出来,具体是在编译时生成一个WebResource.axd(在运行时才动态生成)。可是自己想改script,看看文档的Configuration一节

ScriptPath

Type: string
Default: null (omitted)
Description: MagicAjax's script files are embedded in the dll and are put on page using script tags like this: 

    
<script type="text/javascript" src="AjaxCallObject.js.aspx"></script>
If you set ScriptPath to a value, the src attribute of the script tag will contain the path of ScriptPath. That way you can use your own modified versions of MagicAjax's script files. Example: 
    
<magicAjax ScriptPath="~/script" />


在Core里找到script文件夹,添加到工程目录里,然后按照文档设置web.config文件,再把AjaxCallObject.js中的
function CreateWaitElement() {
    
var elem = document.getElementById('__AjaxCall_Wait');    
    
if (!elem) {        
        elem 
= document.createElement("div");
        elem.id 
= '__AjaxCall_Wait';        
        elem.style.position 
= 'absolute';        
        elem.style.height 
= 17;        
        elem.border 
= "1px";
        elem.style.paddingLeft 
= "3px";
        elem.style.paddingRight 
= "3px";
        elem.style.fontSize 
= "11px";
        elem.style.borderColor 
= "#ffffff";
        elem.style.borderSize 
= "1px";
        elem.style.backgroundColor 
= "DimGray";
        elem.style.color 
= "#ffffff";
        elem.innerHTML 
= 'Loading ';
        elem.style.visibility 
= 'hidden';        
        document.body.insertBefore(elem, document.body.firstChild);        
    }
    waitElement 
= elem;    
}

一段代码做一些修改,比如elem.style.color="#000000";这样再出现Loading ...时字体应该是黑的了吧?
嘿,这一运行,还真没成功!!!

肯定不是script的错!玩了N的js,再把这搞错也太说不过去了!

判断问题出现在config里。

<?xml version="1.0"?>
<configuration>
    
<configSections>
        
<section name="magicAjax" type="MagicAjax.Configuration.MagicAjaxSectionHandler, MagicAjax"/>
    
</configSections>
    
<magicAjax ScriptPath="~/script">
        
<pageStore/>
    
</magicAjax>
    
<system.web>
        
<authentication mode="Forms" />
..
        
<httpModules>
            
<add name="MagicAjaxModule" type="MagicAjax.MagicAjaxModule, MagicAjax"/>
        
</httpModules>
    
</system.web>
</configuration>

路径没问题,XML大小写敏感,拼写都是按文档写的,没问题,靠,Where?

最后,幸好MA开源的,找到MA的代码工程,打开一看:靠,靠,靠!
看到MagicAjaxConfiguration.cs
        public MagicAjaxConfiguration(XmlNode xml)
        {
            
// Default values
            _scriptPath = null// Null implicates that the embedded javascripts will be used (default)
            _compareMode = OutputCompareMode.HashCode;
            _tracing 
= false;
            PageStoreMode mode 
= PageStoreMode.NoStore;
            
bool unloadStoredPage = false;
            
int cacheTimeout = 5;
            
int maxPages = 5;
            
bool maxPagesLimitAlert = false;

            
if (xml != null)
            {
                XmlAttribute attrib 
= (XmlAttribute)xml.Attributes.GetNamedItem("scriptPath");

倒,是scriptPath呀!!!
又看看文档,它真的是写的<magicAjax ScriptPath="~/script" />不是我的错!!!


该死的文档,不如不写!!!

准备,好好研究下MA的代码,因为昨晚发现把Loading改称中文出来的是乱码,是编码格式的问题。
如果,在浏览时把编码改为“简体中文”这样Loading条就正常显示了,可是页面其他中文都乱码了,应该把MA的Encoding改了。太晚了……就睡了,今天下午看看有时间的话来搞它!

我以后要么不写文档,写就负责任的写!

posted on 2006-01-13 10:35 搏软狂歌 阅读(3636) 评论(13)  编辑 收藏 所属分类: Ajax

FeedBack:
#1楼  2006-01-13 11:01 难得一蠢      
我以后要么不写文档,写就负责任的写!

========================

深有感触!!说的太好了!!心里话!!
  回复  引用  查看    
#2楼  2006-01-13 11:26 Duiker      
呵呵,很多文档写出来也每人看。
  回复  引用  查看    
#3楼  2006-01-13 11:31 leves      
有MagicAjax无刷新跳转页面的实现办法吗??
  回复  引用  查看    
#4楼  2006-01-13 12:29 小陆      
给他写个mail,提个bug report吧,也算是为后人做个贡献。
  回复  引用  查看    
#5楼  2006-01-13 13:36 T24 [未注册用户]
直接拿UltraEdit编辑它那个DLL不就结了
想改什么颜色就改什么颜色,相当简便
  回复  引用    
#6楼  2006-01-13 13:51 Orz [未注册用户]
看来以后又多出来一个不写文档的……
  回复  引用    
#7楼 [楼主] 2006-01-13 14:02 任搏软      
当然了,对于修改JS的方案我有三个:
1.使用web.config设定<magicAjax scriptPath="script所在路径">
2.使用文本编辑器打开MagicAjax.dll来修改JS。
3.MA开源的,直接把MA的工程用VS打开,对script文件夹下的两个js文件进行修改。
  回复  引用  查看    
#8楼  2006-01-13 15:03 lovecherry      
我业试验了好久才发现
  回复  引用  查看    
#9楼  2006-01-18 23:04 xxrl [未注册用户]
那个我早下了 一直没看 经历这么一说 我直接给删除了 呵呵
  回复  引用    
#10楼  2006-03-01 17:29 陌生海岸      
我怎么改都不能显示中文呀?问题出在什么地方呢??
  回复  引用  查看    
#11楼  2006-03-18 10:45 njbaige [未注册用户]
MagicAjax 中返回客户端JS 好像不能运行,不晓得什么原因?
  回复  引用    
#12楼  2006-03-18 16:05 aiwei [未注册用户]
初次上来,请大家多多关照,请教个问题
DataGrid分页后,怎样求当前页显示的行数。
急,盼回复
也可直接回到我的邮箱
aiwei0908@tom.com
  回复  引用    
#13楼  2006-03-19 17:33 longaway [未注册用户]

软件有 bug ,文档也是一样的啦。

  回复  引用    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-01-13 10:38 编辑过


相关链接: