浏览器安全限制

    在浏览器中,有些JavaScript代码只有在用户触发下才能执行,例如, window.open() 函数:

    // 无法弹出新窗口,将被浏览器屏蔽:

    $(function () {

    window.open('/');

    });

    这些“敏感代码”只能由用户操作来触发:

    var button1 = $('#testPopupButton1');

    var button2 = $('#testPopupButton2');



    function popupTestWindow() {

    window.open('/');

    }



    button1.click(function () {

    popupTestWindow();

    });



    button2.click(function () {

    // 不立刻执行popupTestWindow(),100毫秒后执行:

    setTimeout(popupTestWindow, 100);

    });

    当用户点击 button1 时, click 事件被触发,由于 popupTestWindow() click 事件处理函数内执行,这是浏览器允许的,而 button2 click 事件并未立刻执行 popupTestWindow() ,延迟执行的 popupTestWindow() 将被浏览器拦截。