如何确定是否支持window.confirm()?

我有一个移动网站被各种设备使用,包括一些运行锁定版本的Windows Embedded 7与IE 7的板载计算机。由于某些原因,我无法解释, window.confirm()被打破,但所有其他的JavaScript似乎工作。

我甚至在连接确认处理程序之前添加了以下检查,但是单击链接什么都不做。

  if (window.confirm) { $(".logoff").click(function () { return confirm("Are you sure you want to log off?"); }); } 

如果我删除了单击处理程序,链接将正常运行。 有没有更好的方法来测试confirm()支持?

怎么样:

 if ('confirm' in window) { $(".logoff").click(function () { return window.confirm("Are you sure you want to log off?"); }); } 

另一个选项是window.hasOwnProperty('confirm')

您可以使用typeof来检查window.confirm是否是一个函数

 if(typeof confirm=='function')// window.confirm is defined and a function 

你可以做到

 if ('confirm' in window && typeof window.confirm === 'function' ) { $(".logoff").click(function () { return window.confirm("Are you sure you want to log off?"); }); } 

虽然以下建议的方法适用于我测试的每个桌面浏览器,但它们都在设备上评估为true,但仍未显示对话框或导航到锚点href中的链接。

 if (typeof confirm == 'object') if ('confirm' in window && typeof window.confirm === 'object') if (window.confirm) 

(在IE 7中, typeof somefunction'object'而不是'function'

我的解决方案是使用jQuery UI Dialog,而不是基于@ ThiefMaster的建议。