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

时间:2012-02-27 16:31:06

标签: javascript jquery

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

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

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

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

5 个答案:

答案 0 :(得分:1)

怎么样:

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

你可以做到

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

虽然以下建议的方法适用于我测试的每个桌面浏览器,但它们都在设备上评估为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的建议。