0

FireBreath를 사용 중입니다. background.html/background.js의 이벤트를 듣고 이벤트가 수신되면 작업을 수행하고 싶습니다. 여기 background.html의 NPAPI 이벤트 수신

코드입니다 :

background.html

<html><head> 

<script src="cons.js"></script> 
</head> 

<body onload="load()"> 
    <object id="plugin0" type="application/x-bohemian" width="300" height="300"><param name="onload" value="pluginLoaded" /></object> 
</body> 
</html> 

cons.js

document.getElementById("plugin0").addEventListener("login", function(){ 
    console.log("chrome extension party!"); 
}, false); 

하지만이 CONSOLE.LOG 메시지를 플러그인 NPAPI에서 이벤트를 트리거 할 때 아니다 점점.

chrome.tabs.executeScript를 사용하여 플러그인 (backgroundpage 제외)에서 연 일반적인 HTML 페이지에 이벤트를 넣으면 기능을 수행 할 수 있습니다.

내가 잘못 했나요?

미리 감사드립니다.

답변

2

대부분의 경우 리스너를 추가하기 전에 플러그인이로드 될 때까지 기다리지 않을 가능성이 높습니다. onload 매개 변수가로드 될 때 pluginLoaded()을 실행하도록 매개 변수를 지정할 수 있으므로 cons.js의 행을 function pluginLoaded() { ... }으로 옮겨보십시오.