跟踪地址栏中输入的字词

Track typed words in address bar

我需要跟踪按下的键,因为这是一个输入输入很重要的实验。 我正在使用它来跟踪所有按下的键

function keypress(e)
{
   if (!e) e= event;
   var focused = document.activeElement;
   var a = String.fromCharCode(e.keycode);
}

function init()
{
    if (document.addEventListener)
    {
       document.addEventListener("keypress",keypress,false);
    }
    else if (document.attachEvent)
    {
       document.attachEvent("onkeypress", keypress);
    }
    else
    {
       document.onkeypress= keypress;
    }
}

function suppressdefault(e)
{
       if (e.preventDefault) e.preventDefault();
       if (e.stopPropagation) e.stopPropagation();
}
</script>

它工作得很好,但是如果用户在地址栏(写 url 的地方)写了一些东西,它不会跟踪这些字符。

我一直在想,有没有什么办法可以跟踪那里的那些键类型?如果不是,有什么方法可以阻止用户在方向栏上写任何东西吗?

你是这个意思吧?

该栏不是网页的一部分,网页只能侦听发送到网页的击键。所以你不能(无论如何你不应该能够)检测或停止这些击键。

但是您可以打开没有地址栏的 window。 https://developer.mozilla.org/en-US/docs/Web/API/Window.open

window.open('http://www.example.com/', '_blank', 'location=no');

演示:http://jsbin.com/fisehihila/1/

在现代桌面浏览器中,它们实际上会显示地址栏以防止网络钓鱼,但它是不可编辑的。

这里在Windows7的Firefox发布频道中是灰色的,可以select,但是不能输入。

fiddle 的选项和这些 window 功能在移动浏览器中的支持有限。