我有一个移动网站,供各种设备使用,包括一些运行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()
支持?
答案 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的建议。