【问题标题】:Can't add properties via Javascript to DOM object received via XMLHttpRequest无法通过 Javascript 向通过 XMLHttpRequest 接收的 DOM 对象添加属性
【发布时间】:2013-04-18 12:16:19
【问题描述】:

我通过 JavaScript 生成 GET XMLHttpRequest 来获取 SVG DOM 对象 (<svg> ... </svg>)。我需要为接收到的对象添加一些属性,如下所示:

svgObject.prop = 5

prop 应由 JavaScript 创建为对象的新属性。

由于某种原因,这在 IE9 中是不可能的,我得到了错误:

对象不支持此属性或方法。

但是,这在 Firefox 和 IE10 中有效。有人遇到过这种行为吗?有人知道如何在 IE9 中绕过它吗?

【问题讨论】:

  • 您之前是否尝试过创建属性,然后填充它?比如var svgObject = { prop:'' };,然后是svgObject.prop = 5
  • 我不确定我理解你的意思。我的 svgObject 将由 XMLHttRequest 返回,所以我不是自己创建的。
  • 啊,试试svgObject["prop"] = 5,IE 可能会将.prop 视为关键字并失败,因为它的上下文错误
  • 谢谢,但没有成功。无论如何,“道具”只是我编的一个名字,任何其他名字都会表现得一样。实际上,在我们的项目中,我们需要为 svgObject 设置一堆属性,但它们都失败了。

标签: javascript svg internet-explorer-9 xmlhttprequest


【解决方案1】:

在 Internet Explorer 10 之前,XMLHttpRequest 返回的对象是 not a native object,因此,该对象不允许扩展属性。 Microsoft fixed this in Internet Explorer 10 并让 XMLHttpRequest 返回一个原生对象,以使其实现与其他浏览器更加兼容。

【讨论】:

  • 那么他的工作会是什么?我会使用 jQuery 或类似的库来执行请求。这样它至少可以跨浏览器兼容,使用$.ajax();$.getJSON();?
猜你喜欢
  • 2011-04-27
  • 2022-08-18
  • 2019-05-29
  • 1970-01-01
  • 2017-07-30
  • 1970-01-01
  • 2021-12-31
  • 2013-10-29
  • 1970-01-01
相关资源
最近更新 更多