鸟食轩

 Microsoft .NET[C#] MVP 2003
随笔 - 429, 文章 - 235, 评论 - 5529, 引用 - 356
数据加载中……

MyMsn beta版源代码里微软遇到问题

    在看MyMsn的脚本源代码时,发现里面有一些微软自己遇到的bug也不能解决。列在这里,如果我们自己也遇到时就不要再郁闷了。

    1、在设置HTML元素的capture状态时:
// we clear any current selection because it will get stuck in selected state after drop (bug 211)
document.selection.clear();

    // 这个缺陷我还没有遇到,不过既然微软说有可能发生,那以后就注意一下啦。

    2、不能取到滚动条的确切宽度:
// adjust for scrollbars when present
if (m_Bod.clientWidth != m_Bod.scrollWidth)
{
    vr.b 
-= 25;
    
// REIVEW: BUG: scroll bars are not always 20 px
    // window.status += "[bottom scrollbar shown] ";
}

    // 这个问题我是遇到过,不过不知道微软自己Review后的结果是啥呀?!

posted on 2005-03-30 14:44 birdshome 阅读(2480) 评论(13)  编辑 收藏 网摘 所属分类: Jscript&Dhtml开发

评论

#1楼   回复  引用  查看    

我觉得mymsn很神奇的一件事是:
他可以在模态窗口里面提交数据,我不知道是如何实现的!
2005-03-30 19:11 | 宝玉      

#2楼   回复  引用  查看    

在模态窗口里面提交数据

嵌套在iframe中。
2005-03-30 20:03 | 辣妹子      

#3楼[楼主]   回复  引用  查看    

什么意思?! 博客园的cute editor的那些模态窗口,比如插入源码、图片管理,不是要提交数据吗?
2005-03-31 00:34 | birdshome      

#4楼   回复  引用  查看    

奇怪就在于他们没有用iframe嵌套!
默认情况下在模态窗口提交数据会弹出新窗口的
2005-03-31 01:35 | 宝玉      

#5楼[楼主]   回复  引用  查看    

可是它是放在一个htc组件里的,是不是这个原因呢?
<mymsn:base ...>
    ...
    <form ...>
    ...
    </form>
    ...
</mymsn:base>
2005-03-31 01:59 | birdshome      

#6楼   回复  引用  查看    

不是,同样的代码在本地就不行(一提交就在新窗口打开)!
2005-03-31 10:43 | 宝玉      

#7楼[楼主]   回复  引用  查看    

那么还真的是郁闷:(

PS: 第一个bug在现在的MyMsn里还存在,把room里内容选中,然后拖到别的地方dock。被拖动room里的图片和input的选择状态就不能被cancel掉,效果如下图:

//就是输入字符的时候,input还是选中状态...

2005-03-31 11:07 | birdshome      

#8楼   回复  引用  查看    

模态窗口的提交是<head><base taget=_self></head>
2005-03-31 11:13 | lay      

#9楼[楼主]   回复  引用  查看    

@宝玉
我又仔细看了一下MyMsn的模态窗口,它确实是使用的iframe哦。 
<html xml:lang="en-us" lang="en-us" xmlns:mymsn="http://schemas.microsoft.com/msn/mymsn">
<head>
    
<title>My MSN - Change Content</title>
    
<noscript>
        
<base href="http://g.msn.com/0US!s1.31710_317621/" />
    
</noscript>
    
<meta http-equiv="pics-label" content="" />
    
<link rel="stylesheet" id="css" type="text/css" href="http://c.sc.msn.com/c/my/lite/5/t/101/style_en_win-ie6.css" />
    
<script type="text/javascript">
        
var H_BURL="http://my.msn.com/panehelp.armx";
        
var L_H_APP="my.msn.com";
        
var H_URL_BASE="http://help.msn.com/en_us";
        
var H_CONFIG="msn_mymsnv9.ini";
    
</script>
    
<script type="text/javascript" src="http://j.sc.msn.com/c/my/j/my.js?v=8"></script>
    
<?import namespace="mymsn" implementation="/basehtc.armx" ?>
    
</head>
    
<body class="dlg" onload="javascript:doDialogLoad();" onresize="javascript:doDialogResize();"
        onkeypress
="javascript:doDialogKeyPress();">
        
<mymsn:base auth="http://g.msn.com/0US!s1.31710_317621/" 
            path
="http://g.msn.com/0US!s1.31710_317621/" evnt="http://g.msn.com/0US!s1.31710_317621/MY.0000" debug="false">
            
<img width="0" height="0" border="0" src="http://a.sc.msn.com/c/my/c.gif" /><!-- G2HM02 -->
            
<img width="0" height="0" src="" alt="" border="0" />
                
<iframe id="dialog_frame" frameborder="0" scrolling="no" height="100%"
                    width
="100%"></iframe>
            
<script type="text/javascript">
                document.getElementById('dialog_frame').src 
= '';
            
</script>
        
</mymsn:base>
    
</body>
</html>
// 我只删除了一个<script>块,那个是做国际化支持用的。
2005-03-31 11:33 | birdshome      

#10楼   回复  引用  查看    

果然!终于明白了,呵呵!还以为他有什么高明的方法呢!
2005-03-31 14:55 | 宝玉      

#11楼   回复  引用  查看    

不用iframe也是可以的。
2005-03-31 15:21 | 辣妹子      

#12楼   回复  引用    

补充说明:我在使用document.selection.clear();时发现一个问题,如果我全选了页面元素,再执行document.selection.clear();,这时页面上所有东西都会消失@_@!
解决办法:使用document.selection.empty()。
2005-04-08 09:25 | birdshome

#13楼   回复  引用    

<head><base taget=_self></head> 就可以保证在提交的时候不会开心窗口了,但是这种方法的问题是,你必须在所有的有可能在模态窗口显示的页面中都加上这个,这样就失去网页设计的通用性,也就是说,你无法确保在其他非模态窗口的地方使用该页面,因为它有可能会不正常。
2005-11-14 09:42 | wuxsh[未注册用户]



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 128589




相关文章:

相关链接: