NPP_New在几个网页中没有被调用(Chrome和Safari)

时间:2013-03-31 15:50:16

标签: google-chrome-extension npapi safari-extension browser-plugin

我正在尝试从Chrome / Safari扩展程序的内容/注入脚本访问NPAPI插件。

嵌入插件对象和访问方法的代码。

var newElement = document.createElement("embed");  
newElement.id = "myPluginID";  
newElement.type = "application/x-mychrome-plugin";
var newAttr = document.createAttribute("hidden");
newAttr.nodeValue = "true"
newElement.setAttributeNode(newAttr);
newElement.style.zIndex = "-1";
newElement.style.position = "absolute"; 
newElement.style.top = "0px";
document.documentElement.appendChild(newElement);
plugin = document.getElementById("myPluginID"); //this shows as HTML element when evaluated in JavaScript console.


   plugin.myPluginMethod() // this shows as undefined instead of native code(When evaluated in JavaScript console),for pages where NPP_New is not called.

这适用于大多数网页,但是对于少数页面(例如:www.stumbleupon.com),NPP_New未被调用(使用Xcode 4进行调试),并且未创建脚本化对象,并且所有插件方法都未定义。 / p>

任何输入。

1 个答案:

答案 0 :(得分:2)

为什么要将您的嵌入作为document.documentElement(即<html>)的孩子而不是身体?我不希望一个不会被显示的插件被实例化。