单击外部页面上的触发事件

时间:2013-03-02 06:20:40

标签: javascript events

如果用户点击外页,是否可能触发事件?更具体地说,在浏览器标题栏或标签栏中?

试试这个jsFiddle example

HTML

<div id="box">
    <div id="menu">Click here</div>
    <div id="show">Hello!</div>
</div>

JS

jQuery('div#menu').on('click', function(ev) {
    jQuery('div#show').addClass('visible').css({
        top: ev.clientY,
        left: ev.clientX
    });

    return false;
});

jQuery(document).click(function() {
    jQuery('div#show').removeClass('visible');
});

jQuery(window).blur(function() {
    jQuery(document).click();
});

TESTS

首先点击“点击此处”按钮。所以......

  1. 尝试点击某个文档部分:确定
  2. 尝试点击某些页面部分或取消对焦浏览器窗口:确定
  3. 尝试点击浏览器中其他一些已打开的标签:确定
  4. 尝试点击浏览器标题栏或标题标题:失败
  5. SO ...

    我可以解决这个问题吗?

    测试结果

    • Chrome :最后失败;
    • Firefox :最后失败;
    • IE10 :最后失败;
    • Opera :最后失败;

1 个答案:

答案 0 :(得分:1)

很抱歉告诉你这件事,但这是不可能的。

原因?实质上,单击窗口的标题栏/标签栏实际上并不会使元素失去焦点。

请在此处尝试此示例:

http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onblur

您会注意到单击标题栏/标签栏并不会使文本框失去焦点,这是问题的根源。

我不认为这对你的项目来说是个大问题。就用户而言,它现在看起来很棒。