我的html具有其他应用程序嵌入的扩展名:
document.documentElement.appendChild((function () {
var objectElement = document.createElement("embed");
objectElement.setAttribute("id", "my-plugin");
objectElement.setAttribute("type", "application/x-my-app");
objectElement.setAttribute("width", "0");
objectElement.setAttribute("height", "0");
return objectElement;
}()));
通常,我们通过其ID获取该对象:
var plugin = document.getElementById("my-plugin");
这里的问题是,该对象是由其他应用注入的,其ID可能会有所不同。我只知道它的MIME类型是“ x-my-app”,但是看起来没有
getElementByType()
可以获取它? 最佳答案
在sufficiently advanced browsers上,您可以使用querySelector()
/ querySelectorAll()
:
document.querySelector("embed[type='application/x-my-app']")
如果使用jQuery,则即使在不够先进的浏览器上,以下内容也可以使用:
$("embed[type='application/x-my-app']")
如果两者都不是,则可以遍历所有
<embed>
标记:result = [];
var embeds = document.getElementsByTagName('embed');
for (var i = 0; i < embeds.length; i++) {
var embed = embeds[i];
if (embed.type === type) {
result.push(embed);
}
}
全部三个的jsFiddle example。