那天一位写C++的同事问我,一段网页里,选中了一段文字,当我们用鼠标点击下网页,选择的文字就取消掉了。 但是当点击到图片上的时候,IE出现一个现象,选择的文字并没有取消。
他把示例代码发给我,我发现他已经给图片加了事件响应,如果就在事件响应函数里,处理吧。 刚开始想用转移焦点的思路,发现无效。 后面跟网友讨论直接控制Selection选区完成了处理。
记录如下:
var SelectImg;
function OnMousedown(e)
{
if( null != 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 阅读(1868)
评论(0) 编辑 收藏 所属分类:
web前端