首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当引用传递对象时出现IE问题。和动态添加属性

当引用传递对象时出现IE问题。和动态添加属性
EN

Stack Overflow用户
提问于 2011-09-20 19:16:12
回答 2查看 122关注 0票数 1

因此,我创建了一个函数来对从AJAX调用中收到的XML文件进行错误检查。验证的一部分是,在我将数据处理为表单时,该函数构建一个对象以便于访问。在FF中,工作就像一种魅力。因错误而死:

对象不支持此属性或方法

下面是函数(减去不重要的位):

代码语言:javascript
运行
复制
function checkReceiveXMLTagString( doc, messageObject, tag ) {

    var tag_nodes = doc.getElementsByTagName( tag );

    ...do some error checking...

    messageObject[tag] = tag_str; <-- error occurs on this line

    return true;
}

下面是函数如何调用的一个示例:

代码语言:javascript
运行
复制
if ( checkReceiveXMLTagString( messageObject.Name[0], messageObject.Name[0], "First" ) ) {

    ...process messageObject.Name[0].First...

}

就像我说的,FF没有问题。Safari也会加载页面。有问题。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-09-20 19:26:40

好像有什么东西使messageObject成为nullundefined

票数 1
EN

Stack Overflow用户

发布于 2011-09-20 20:53:04

如果错误出现在这一行上:

代码语言:javascript
运行
复制
messageObject[tag] = tag_str;

那么,我所知道的导致错误的唯一两种方法是:

  1. messageObject不是可以设置属性的对象(nullundefined是happen)
  2. tag为空或未定义的

的最可能方式)。

因为我看到您的代码调用了这个函数数百次,所以您不能有效地破坏它,所以我建议您使用一些防御性代码来检查这些条件,并将一些内容输出到调试控制台,以确定问题发生时的状态。您甚至可以使用如下代码触发条件断点:

代码语言:javascript
运行
复制
if (!messageObject || !tag) {
    debugger;
}

在最困难的情况下,您可以在其周围设置一个异常处理程序,并在抛出异常时中断:

代码语言:javascript
运行
复制
try {
    messageObject[tag] = tag_str;
} catch(e) {
    debugger;
}

这两种方法都允许您捕获调试器中的条件,并在发生错误时检查所有参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7490525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档