发布here是一个答案,指示错过旧window.showModalDialog
JavaScript函数的人使用
<dialog>
而是元素。我已经将它与IE和FF所需的polyfill一起使用,并且它可以工作。但是,使用我希望避免使用Chrome的polyfill时会出现明显的延迟(更不用说在浏览器支持时不会使用polyfill的警告)。如何检测对话框元素是否受支持,以便省略polyfill处理?特别是这些行:
var dialog = document.getElementById('<element id>');
dialogPolyfill.registerDialog(dialog);
答案 0 :(得分:8)
你可以写一个像这样的简单测试:
if (typeof HTMLDialogElement === 'function') {
/** yep */
} else {
/** nope */
}
答案 1 :(得分:1)
尝试console.log(typeof window.showModalDialog === 'undefined')
if (typeof window.showModalDialog === 'undefined') {
console.log('No. ');
} else {
console.log('Yes! ');
}
答案 2 :(得分:0)
function dialogElementSupported() {
return typeof document.createElement('dialog').show === 'function';
}