他把示例代碼發給我,我發現他已經給圖片加了事件響應,如果就在事件響應函數里,處理吧。 剛開始想用轉移焦點的思路,發現無效。 后面跟網友討論直接控制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();
}
}
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 。