那天一位写C++的同事问我,一段网页里,选中了一段文字,当我们用鼠标点击下网页,选择的文字就取消掉了。 但是当点击到图片上的时候,IE出现一个现象,选择的文字并没有取消。

他把示例代码发给我,我发现他已经给图片加了事件响应,如果就在事件响应函数里,处理吧。 刚开始想用转移焦点的思路,发现无效。 后面跟网友讨论直接控制Selection选区完成了处理。

记录如下:
var SelectImg;
    
function OnMousedown(e)
    {
        
ifnull != SelectImg )
        {
            SelectImg.style.border
="1px solid #fff";    
        }
        
        
var targ;
        
if (!e) 
            
var e = window.event;
        
if (e.target) 
            targ 
= e.target;
        
else if (e.srcElement) 
            targ 
= e.srcElement;
        
        
var tname;
        tname 
= targ.tagName.toLowerCase();
        
        
if ( tname == "img" )
        {
            targ.style.border
="1px solid #000";
            SelectImg 
= targ;
            document.selection 
&& document.selection.empty && ( document.selection.empty(), 1)
            
|| window.getSelection && window.getSelection().removeAllRanges();

        }
    }

   这样解决了那位朋友的问题,当把示例代码发过去,朋友很高兴,不过问起:( document.selection.empty(), 1) 这是做什么? 我想也许不是写JS的人,会有这个疑问,我在这里也介绍下,这是为了让这个函数执行,并返回值 == 1 。


posted on 2011-03-26 12:08 -274°C 阅读(1869) 评论(0)  编辑  收藏 所属分类: web前端

只有注册用户登录后才能发表评论。


网站导航:
 

常用链接

留言簿(21)

随笔分类(265)

随笔档案(242)

相册

JAVA网站

关注的Blog

搜索

  •  

积分与排名

  • 积分 - 911937
  • 排名 - 40

最新评论