1

我插件中的这段代码过去可以正常工作:


jQuery('#embedded_obj', context).get(0).getVersion();

和html...


<object id="embedded_obj" type="application/x-versionchecker-1.0.0.1"></object>

基本上试图从嵌入式对象中获取属性。但看起来 get(0) 正在返回一个 html 对象而不是实际的嵌入对象。

例如,如果我这样做:


var launcher = jQuery('#embedded_obj', context).get(0);

for(prop in launcher){
  alert(prop + ': ' + launcher[prop]);
}

...它会提醒诸如“getElementByNode”、“scrollWidth”、“clientLeft”、“clientTop”等内容。

这在 Firefox 3.6 之前同样有效。有没有其他人看到这个或有任何想法/建议?

谢谢!

4

1 回答 1

1

你确定它以前有效吗?jQuery(..).get(..) 总是返回一个 DOM 对象(在这种情况下是<object>元素),所以你确定你没有使用类似的语法

var launcher = new VersionChecker(jQuery("#embedded_obj").get(0));
alert(launcher.getVersion());

那么使用一个负责 HTML DOM 元素和实际嵌入对象之间链接的构造函数呢?

如果是这样,您是否用一个小test.html文件检查它并用两个浏览器打开它以验证行为差异?

编辑:没关系,在我用谷歌搜索并偶然发现http://forum.jquery.com/topic/jquery-object-get-0-is-not-a之后,对象标签确实发生了一些奇怪的事情-dom-element-in-ff-but-is-in-safari-is-this-a-bug

于 2010-04-07T18:03:09.113 回答