Javascript未定义函数
我正在ASP.net应用程序中使用电子签名板。如果epad未连接,我想弹出一条警告消息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
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函数。