jhs84
小狐狸
小狐狸
  • UID38743
  • 注册日期2012-04-28
  • 最后登录2012-05-02
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:1746回复:2

希望给脚本加个时间限制——当鼠标经过任意输入框时,自动选择它的文字

楼主#
更多 发布于:2012-04-28 22:52
有2个uc脚本,希望增加一个时间限制,如鼠标停在 地址栏/输入框 0.5s或1s(可自定义)后,鼠标在所停留的位置变成光标,这样就方便输入文字和选择文字

1. 鼠标移动到地址栏,自动全选

document.getElementById("urlbar").addEventListener("mouseover", function (e) {
    if (this.compareDocumentPosition(document.activeElement) == 20) return;
    e.target.select();
}, false);


2.当鼠标经过任意输入框时,自动选择它的文字


(function() {
    document.addEventListener('mouseover', function(e) {
        var localName = e.target.localName.toLowerCase();
        if (localName=='textarea' || localName=='input') e.target.select();
        }, false);
})();
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2025-04-27
  • 发帖数2040
  • 经验656枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
1楼#
发布于:2012-04-28 22:52
有点思路……
判断是textarea或者input后,设置一个状态变量canSelect = true,在mousemove注册targetCheck事件
否则canSelect = false,并取消targetCheck事件

targetCheck事件实现:
设一个状态变量timeoutId
先clearTimeout(timeoutId)
再timeoutId = setTimeout(xxx毫秒,select方法)

select方法的实现:
if(canSelect){
选中鼠标下的位置;
canSelect = false; //阻止多次重复控制焦点
}
-いたんですか? -ええ、ずっと
jhs84
小狐狸
小狐狸
  • UID38743
  • 注册日期2012-04-28
  • 最后登录2012-05-02
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2012-04-28 22:52
白左:有点思路……
判断是textarea或者input后,设置一个状态变量canSelect = true,在mousemove注册targetCheck事件
否则canSelect = false,并取消targetCheck事件

targetCheck事件实现:
设一个状态变量timeoutId
先clearTimeout(timeoutId)
再timeoutId = setTimeout(xxx毫秒,select方法)

select方法的实现:
if(canSelect){
选中鼠标下的位置;
canSelect = false; //阻止多次重复控制焦点
}
回到原帖


代码小白表示看不懂这些     看起来好像有点复杂的样子
游客

返回顶部