0

Я пытаюсь получить доступ к плагину NPAPI из сценария содержимого/ввода расширений Chrome/Safari.NPP_New не вызывается на нескольких веб-страницах (Chrome и Safari)

Код для внедрения объекта плагина и методов доступа.

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) и объекта является поддерживающими сценариями не создаются, и все методы плагина не определены.

Любые входы.

ответ

2

Почему вы помещаете свое вложение в качестве ребенка от document.documentElement (т. Е. <html>), а не в тело? Я бы не ожидал, что плагин, который не будет отображаться, будет создан.

+0

Кроме того, положите его в корпус, прежде чем устанавливать тип. – taxilian

+0

Спасибо smorgan ... удалив код для скрытия элемента embed, исправлена ​​проблема. – user2002676