Javascript未定义的功能

时间:2010-01-06 20:57:20

标签: javascript

我在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值为''或未定义

4 个答案:

答案 0 :(得分:3)

如果epad的值为falseundefined,则''将评估为if (!epad) { alert('Sorry epad is not Connected or drivers not installed'); }

{{1}}

答案 1 :(得分:2)

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');
            }


}

答案 2 :(得分:0)

尝试

if (epad == '' || typeof epad == 'undefined') {

而不是

if (epad == '' ) {

答案 3 :(得分:0)

所以 - 其中一些对我来说是新的,也许其他人会有宝贵的东西可以添加到我要说的内容中......

也许尝试这样的事情......

(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,undefined或false,则会出现第二个警告。