크롬 확장을 만들려고하지만 올바른 방식으로 버튼에 리스너를 부착 할 수 없습니다. js에 익숙하지 않은 점에 유의해야합니다. 문제는 개념을 잘못 이해했거나 요소 로딩 타이밍에 있습니다. 여기 크롬 확장에 청취자를 추가 할 수 없습니다.
콜백
에 청취자를 추가하려고 i'am 있도록, 그래서 인라인 JS를 매니페스트 (V2)를 사용하여"background" : {"page" : "kbm.html"}
I'am는 disalowed됩니다 kbm.html입니다 : 여기
<!DOCTYPE html>
<html>
<head>
<script src="kbm.js"></script>
</head>
<body>
<button id="loadall">Open all saved</button>
</body>
</html>
및 kbm.js :
chrome.browserAction.onClicked.addListener(
function(tab) {
chrome.tabs.create({'url': chrome.extension.getURL('kbm.html')},
function(tab) {
alert(document.getElementById("loadall"));
document.getElementById("loadall").addEventListener("click",loadAll,false);
});
}
);
function loadAll(){
alert("hallo");
}
도구 모음 아이콘을 kbm.html을로드하고 클릭 한 후 나는 chrome.tabs.create 전화에서 경고 메시지를 볼 수 있습니다 뒤로. 그러나 loadall 버튼을 클릭하면 아무것도 표시되지 않습니다.
페이지로드 후 버튼에 리스너가 없다는 것을 디버거 (f12 포함)에서 볼 수 있습니다. 나는 동적으로 JS 콘솔
>document.getElementById("loadall").addEventListener("click",loadAll);
undefined
에서 버튼에 리스너를 추가 할 수 있기 때문에 구문은
가 확인 될 것으로 보인다 그리고 내가 클릭 한 후() LOADALL에서 전화를 경고 참조 요소 설명에 나타납니다.
먼저 나는 콜백 MB 모든 페이지 요소 초기화 이전이라는 것을 thougth 따라서는 ID = "LOADALL"와 요소를 찾을 수없는 것이 아니라, 그 메시지
object HTMLButtonElement
먼저 경고 주문에 따라 이유.
그러나이
I'v이 예제를 보면서 페이지로드 :(에서 버튼에 부착 된 콜백 없다하지만 맹목적으로 내가 놓친 것을 발견 할 THER 실현을 복사하지 못할 이유를 나는 아직도 이해가 안 돼요. . 사전에
감사