Javascript 打开一个新窗口并按事件打印该新窗口(IE)

Javascript 打开一个新窗口并按事件打印该新窗口(IE),javascript,internet-explorer,event-handling,Javascript,Internet Explorer,Event Handling,我想打开一个带有链接的新窗口,并在触发事件后打印该窗口(按Window.Print())。该代码适用于Chrome和FF,但不适用于IE: function printClick(){ var link = makeLink(); var win = window.open(link, '_blank'); win.focus(); if(!win.addEventListener){ win.attachEvent('myEvent', fun

我想打开一个带有链接的新窗口,并在触发事件后打印该窗口(按Window.Print())。该代码适用于Chrome和FF,但不适用于IE:

function printClick(){
    var link = makeLink();
    var win = window.open(link, '_blank');
    win.focus();

    if(!win.addEventListener){
        win.attachEvent('myEvent', function (e) {
            win.print();
        },false);
    }else{
        win.addEventListener('myEvent', function (e) {
            win.print();
        }, false);
    }
}
新窗口“var win”本身通过以下方式初始化事件:

$( document ).ready(function() {
    myEvent= document.createEvent("Event");
    myEvent.initEvent("myEvent", true, false);
}
并使用以下行触发事件:

    window.dispatchEvent(myEvent);
看起来事件已调度,但侦听器(attachEvent)不执行任何操作。 我对这些事件做了什么错事吗?我已经用IE11测试过了。 如果您错过了回答问题的任何信息,请随时提问。=)


谢谢你

如果你真的想要特征检测,浏览器检测通常是不好的。你能用
替换你的
isIE()
!!window.Event
或类似的功能检查?其中一个变体在IE中有效还是根本不起作用?一个特性检测,我会记住这一点;我放置了一个调试器;检查IE是否有任何代码问题(错误)所有看起来都很好,但它没有打开打印视图…好的,我添加了功能检测,它仍然可以与FF和Chrome一起工作,但IE不想打开打印视图/触发事件你有错误吗?也许IE不喜欢你跨窗口发送事件。你绝对需要事件吗?你能直接调用函数吗?您还可以考虑使用<代码>窗口> PaseMeult>代码>将消息发送到其他窗口。