Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 使用嵌套对象标记在一个页面中添加ActiveX和NPAPI插件_Javascript_Html_Firefox_Activex_Npapi - Fatal编程技术网

Javascript 使用嵌套对象标记在一个页面中添加ActiveX和NPAPI插件

Javascript 使用嵌套对象标记在一个页面中添加ActiveX和NPAPI插件,javascript,html,firefox,activex,npapi,Javascript,Html,Firefox,Activex,Npapi,我想在一个页面中嵌入ActiveX和NPAPI插件,使用嵌套对象标记(由Mozilla推荐),而不是依赖用户代理 问题是:我想使用一个对象id,例如id=“MyObject”,它将在两个对象标记(对于ActiveX或NPAPI)中定义,以便我的Javascript直接调用对象MyObject,而不管它是ActiveX还是NPAPI 我希望我说清楚了。好吧,你不应该那样做。相反,为对象指定相同的“类”值,并让Javascript查找该值 “id”属性的值必须是唯一的。getElementsByCl

我想在一个页面中嵌入ActiveX和NPAPI插件,使用嵌套对象标记(由Mozilla推荐),而不是依赖用户代理

问题是:我想使用一个对象id,例如id=“MyObject”,它将在两个对象标记(对于ActiveX或NPAPI)中定义,以便我的Javascript直接调用对象MyObject,而不管它是ActiveX还是NPAPI


我希望我说清楚了。

好吧,你不应该那样做。相反,为对象指定相同的“类”值,并让Javascript查找该值


“id”属性的值必须是唯一的。

getElementsByClassName对我不起作用,所以我做了一个简单的技巧,效果很好

<object classid="clsid:something" id="obj1" >
<object type="application/x-blah-blah-blah" id="obj2">
</object></object>
或者如果您希望
如果(!(obj2==null | | obj2==undefined))
任何您喜欢的

obj1 = getElementById("obj2");

这将为NPAPI插件创建对象,或者如果浏览器是IE,则将在不输入if语句的情况下顺利进行(IE不允许您使用getElementById分配给具有id属性的对象)。然后,您只需使用obj1进行处理,或者使用它来实例化另一个您认为合适的对象。

您实际上可以为activex控件注册一个mime类型,如果它是您的,这将允许您对这两个控件使用相同的对象标记

火气(http://firebreath.org)这样做


更多信息请点击此处:

我该如何继续这样做?两个对象标记都有一个类值,好吧,这没有问题,但是我如何才能使对象在所有Javascript功能中都是全局的,如何通过其类获取元素?例如:那么,在我的Javascript中的某个地方,我调用:objectx=getElementsByClassName('myClass');因为这样做是不对的。是的,这正是你要做的,它会“正常工作”。这是一种非常常见的做事方式。对不起,但它不起作用。没有多少浏览器支持这种方法,即使在FF3.6.10中,它也不起作用,尽管我确实定义了一个自定义的getElementsByCassName函数,以防浏览器不支持它。但我找到了另一个解决办法。不过,谢谢你的努力。你知道,你也可以通过其他方式获得元素。例如,您可以调用“getElementsByTagName('*'),然后在节点列表中迭代查找所需的节点。这听起来不太标准,所以我使用了YouTube的功能。我检查浏览器是否是IE,然后根据它动态地注入DOM。另外,非常感谢你在ColonelPanic的出色工作,伙计!你的NPAPI教程是由纯win编写的。我很高兴它们对你有帮助=]注册mime类型并不罕见,但无论哪种方法都有效。这两个方向都有优点和缺点。
obj1 = getElementById("obj2");