chrome中怎么才能左击网页内容时候改变鼠标样式,我改了没用,但是IE完美

function DivEnMv(obj){
obj.style.cursor = 'move';
}
QQ空间的这个感觉实现的很好,心血来潮实现一下悲剧了,IE完全没有问题,chrome也没有问题,就是chrome中你左键按下并且移动的时候,这时候鼠标就变成文本那种光标状态了。
求解决

这个问题查了半天
1、首先,我用safari也跑了一次代码,发现safari是同样的问题,所以确定问题出在内核上而不是chrome的外围代码上
2、打开webkit内核代码,找到事件处理函数Cursor EventHandler::selectCursor(const MouseEventWithHitTestResults& event, Scrollbar* scrollbar)
发现
case CURSOR_MOVE:
return moveCursor();
进入平台相关实现:CursorChromium.cpp对此函数的定义:
const Cursor& moveCursor()
{
static const Cursor c(PlatformCursor::TypeMove);
return c;
}
执行你所说的动作时,返回的是一个常量,不能更改样式。

你可以把这个问题作为BUG提交到chrome项目,有美金奖励的。追问

你试试QQ空间的自定义样式,然后移动一个模板会发现他就完全没有我说的这个问题。太神奇了!

追答

我这样处理,也可以达到效果。
qq空间的代码太复杂没有去仔细看,但是鼠标点击事件在它的div“控件”上是有被特殊处理的。
这类站点的事件流肯定都是自己控制而不使用浏览器默认的。

document.onmousedown = function()
{
return false;
}
document.body.style.cursor = 'move';

我们要解决这个问题出发点就是让chrome不要把“鼠标按下并拖动”这个事件处理为它自己默认的文本选择事件,所以事件流在mousedown处理完后就直接屏蔽掉。
你只要在我的代码基础上作延伸,我写body上是方便测试,你把事件处理直接写到你的obj上即可。

追问

好强硬的手法。
感谢回答

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网