Firefox中的showModalDialog

时间:2016-10-16 09:32:55

标签: javascript firefox plugins

是否可以将此Chrome插件转换为在Firefox中使用?

https://github.com/chuckhendo/showModalDialog-shim

该插件需要将window.showModalDialog替换为window.open

angular-cli.json

1 个答案:

答案 0 :(得分:0)

您可以在GreaseMonkey中运行它。安装GreaseMonkey扩展,然后将上面的代码添加为用户脚本。

这里改写为GreaseMoney:

// ==UserScript==
// @name        AddShowModal
// @namespace   http://www.weirdies.net
// @version     1
// @grant       none
// @include     *
// ==/UserScript==

(function () {
    var shim = '(' + function() {
    if(typeof window.showModalDialog !== 'function') {
       window.showModalDialog = function() {
        var opts = arguments[2];
        opts = opts
        .replace(/;/g, ',')
        .replace(/:/g, '=')
        .replace(/dialogWidth/g, 'width')
        .replace(/dialogHeight/g, 'height')
        .replace(/center/g, 'centerScreen');
    return window.open.call(this, arguments[0], '_blank', opts );
   };
}
} + ')();';



var scriptEl = document.createElement('script');
scriptEl.textContent = shim;
(document.head||document.documentElement).appendChild(scriptEl);
})();

我确认它适用于OWA 10以启动附加对话框等,而无需将dom.disable_window_showModalDialog设置为false并禁用Electolysis。它似乎有点笨拙,它似乎没有正确地转换宽度和高度(它打开全屏,我现在没有时间调试它),但它的工作原理。