使用ActiveXObject创建FireBreath插件的实例

使用ActiveXObject创建FireBreath插件的实例,firebreath,activexobject,Firebreath,Activexobject,我正在使用FireBreath创建一个跨浏览器插件。在HTML测试页面中,我使用以下函数来检测插件是否已安装,如果未检测到插件,则启动MSI安装程序的下载 function checkPlugin(){ var pluginInstalled = false; if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {

我正在使用FireBreath创建一个跨浏览器插件。在HTML测试页面中,我使用以下函数来检测插件是否已安装,如果未检测到插件,则启动MSI安装程序的下载

function checkPlugin(){
    var pluginInstalled = false;
    if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
        // For IE 
        var pluginObject = null;
        try {
            pluginObject = new ActiveXObject('Test.TestPlugin');
            if(pluginObject){
                pluginInstalled = true;
                //pluginObject.Dispose();
            }
        } catch (e) {
            // Cannot load the plugin. Most probably it's not installed
            console.log(e.message);
        }
    }else{
        // For other browsers
        pluginInstalled = (navigator.mimeTypes && navigator.mimeTypes["application/x-test"] && navigator.plugins["TestPlugin"]);
    }
    return pluginInstalled; 
}

上述函数在除IE之外的所有其他浏览器上都能正常工作。当它试图使用ActiveXObject创建插件实例时,会导致IE 9和10崩溃。我注意到对该功能的支持是从FireBreath 1.4开始添加的,但我相信我使用的是FireBreath 1.7的最新版本。非常感谢为解决此问题提供的任何帮助:)

这看起来像中使用的方法,这就是我在插件中使用的方法。你不完全清楚你使用的是什么版本;你是1.7吗?我在1.6和1.7上肯定能用

如果你能更具体地描述一下它在哪里崩溃,那可能更容易做出一些猜测;尝试附加调试器。有关如何强制IE成为单个进程以附加调试器的信息,请参阅firebreath.org上的“”页面