Javascript未定义函数

Javascript未定义函数,javascript,Javascript,我正在ASP.net应用程序中使用电子签名板。如果epad未连接,我想弹出一条警告消息 function isePad() { var epad; epad = window.document.esCapture1.ConnectedDevice; alert(epad); if (epad == '' ) { alert('Sorry epad is not Conn

我正在ASP.net应用程序中使用电子签名板。如果epad未连接,我想弹出一条警告消息

function isePad() {
            var epad;
            epad = window.document.esCapture1.ConnectedDevice;
            alert(epad);
            if (epad == '' ) {
                alert('Sorry epad is not Connected or drivers not installed');
            }


        }

在大多数机器中,它运转良好。在某些机器中,第一个警报显示未定义的值。我想显示警报(“对不起,epad未连接或未安装驱动程序”);如果epad值为“”或未定义

则使用此方法,
epad
将计算为
false
,如果其值为
未定义
'

function isePad() {
            var epad;
            epad = window.document.esCapture1.ConnectedDevice;
            alert(epad);
            if (epad == '' or epad == undefined) {
                alert('Sorry epad is not Connected or drivers not installed');
            }


}
if (!epad) {
    alert('Sorry epad is not Connected or drivers not installed');
}

使用此方法,
epad
如果其值为
undefined
'
,则将计算为
false

if (!epad) {
    alert('Sorry epad is not Connected or drivers not installed');
}
试一试

而不是

if (epad == '' ) {
试一试

而不是

if (epad == '' ) {
所以——其中一些对我来说是新的,也许其他人会有一些有价值的东西来补充我将要说的

也许试试这样的

(function() {
    var epad = window.document.esCapture1 && window.document.esCapture1.ConnectedDevice;
    alert(epad);
    !epad && alert('Sorry epad is not Connected or drivers not installed');
})();
在您的示例中,我认为如果“window.document.esCapture1”本身未定义,则某些或所有浏览器可能会在函数的第1行阻塞,因此我对其进行了更改以防止这种可能性

此外,将此测试放在匿名函数中可以将“epad”变量保留在全局命名空间之外,这是一个好主意(除非您在其他地方需要它)

最后一行只是测试“epad”变量是否为falsy——这意味着如果“epad”为null、未定义或false,则会出现第二个警报。

因此,其中一些对我来说是新的,也许还有一些对我将要说的话有价值

也许试试这样的

(function() {
    var epad = window.document.esCapture1 && window.document.esCapture1.ConnectedDevice;
    alert(epad);
    !epad && alert('Sorry epad is not Connected or drivers not installed');
})();
在您的示例中,我认为如果“window.document.esCapture1”本身未定义,则某些或所有浏览器可能会在函数的第1行阻塞,因此我对其进行了更改以防止这种可能性

此外,将此测试放在匿名函数中可以将“epad”变量保留在全局命名空间之外,这是一个好主意(除非您在其他地方需要它)

最后一行只是测试“epad”变量是否为false——这意味着如果“epad”为null、未定义或false,则会出现第二个警报。

抱歉——epad变量不在全局命名空间中;而是isePad函数。抱歉--epad变量不在全局命名空间中;而是isePad函数。