如何检测浏览器是否支持对话框

时间:2015-08-06 01:42:45

标签: javascript html5 dialog polyfills

发布here是一个答案,指示错过旧window.showModalDialog JavaScript函数的人使用

<dialog>
而是

元素。我已经将它与IE和FF所需的polyfill一起使用,并且它可以工作。但是,使用我希望避免使用Chrome的polyfill时会出现明显的延迟(更不用说在浏览器支持时不会使用polyfill的警告)。如何检测对话框元素是否受支持,以便省略polyfill处理?特别是这些行:

var dialog = document.getElementById('<element id>');
dialogPolyfill.registerDialog(dialog);

3 个答案:

答案 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';
}