Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE而不是Firefox中的空指针预期,为什么会发生这种情况?_Javascript_Selenium - Fatal编程技术网

Javascript IE而不是Firefox中的空指针预期,为什么会发生这种情况?

Javascript IE而不是Firefox中的空指针预期,为什么会发生这种情况?,javascript,selenium,Javascript,Selenium,我有一个脚本,它在一个html标记id数组中循环,数组中的一些元素是空的。我有一个if语句,它在Firefox中运行良好,但在IE中抛出空指针或不抛出对象错误 if((storedVars.id) != ("")){selenium.browserbot.getCurrentWindow().document.getElementById(storedVars.id).type;} 为什么它在IE中失败而不是在firefox中失败?IE的正确语法是什么?在我看来,如果storedVars.i

我有一个脚本,它在一个html标记id数组中循环,数组中的一些元素是空的。我有一个if语句,它在Firefox中运行良好,但在IE中抛出空指针或不抛出对象错误

if((storedVars.id) != ("")){selenium.browserbot.getCurrentWindow().document.getElementById(storedVars.id).type;} 

为什么它在IE中失败而不是在firefox中失败?IE的正确语法是什么?

在我看来,如果storedVars.id==null,那么不管浏览器是什么,这段代码都不会工作。那是因为storedVars.id!=当storedVars.id为null时,(“”)为true。也许它在IE中是空的(或者你在IE中运行的测试),而在Firefox中不是空的。根本原因可能是代码中的其他地方。假设它不为null,并且假设其他对象都存在且不为null(selenium.browserbot.getCurrentWindow())并返回跨浏览器兼容的对象,则应执行此代码


但是,据我所知,这段代码没有任何作用。没有方法调用或赋值。有点离题,但为了减轻跨浏览器的痛苦,人们通常只使用jQuery或YUI之类的框架。

在IE中,它可能是未定义的或
null
而不是空字符串,因此请尝试以下方法:

if(storedVars.id && storedVars.id !== "")
(由于
!==
操作员比较两个字符串,效率也会提高)

什么版本的IE?它的
id
是什么?