【发布时间】:2014-02-13 08:35:40
【问题描述】:
我在我的页面上使用了一个 iframe,它由一个带有输入元素的表单组成。 每个输入元素都有一个 onblur() 事件,用于验证输入。
当我在 IE 8 中打开带有新清除缓存的页面时,它会产生类似这样的 javascript 错误。
document.getElementById(...)' is Null or not an Object
但是,当我检查表单时,它已完全加载并呈现了我尝试访问的内容。 此外,当我重新加载整个页面时,我不再收到任何错误。 此外,当我自己加载 iframe 的内容时,我也不会出错。
Firefox 和 Chrome 根本不会抛出错误。
简而言之,我得到的 Javascript 错误仅发生在 IE 中,并且仅在我使用 iframe 显示表单(这是强制性的)并且仅在第一次加载页面时发生。
关于如何解决此问题的任何想法?
我希望它阅读起来不会太混乱。
编辑:
document.getElementById("vHint_"+fieldName).innerHTML=data;
FieldName 是输入字段的 id。数据是验证的返回值。 在这种情况下,数据是一个图像标签。 在每个输入字段之后是一个跨度标签,其 id 为“vHint_”+fieldName。
事件是这样附加的:
<input id="Jahr" class="input" type="text" onblur="validDate(this,'Jahr','_beginn')" maxlength="4" style="width:32px" value="" name="Jahr">
【问题讨论】:
-
那么,
onload你通过getElementById()循环并附加onblur,这就是错误发生的地方? -
用户在输入元素中输入数据后触发 onblur。然后验证输入,然后使用 getElementById() 来显示输入是否正确。
-
你能把你的代码添加到错误发生的地方吗
-
是的,但是错误在何时何地出现?加载时、第一次模糊时等。脚本驻留在哪里?在 iframe 或母 DOM 中。它是附加在标题、内联还是外部脚本中?如何以及在哪里?错误是由什么触发的? – 如果你能做一个最小的例子,例如jsfiddle 这很可能会很有帮助。
-
脚本位于 iframe 内容的头部。该事件由用户填写数据触发。所以错误发生在第一个 onblur() 事件
标签: javascript internet-explorer iframe