내 Firefox 확장 프로그램에서 동적으로 팝업 메뉴를 만듭니다. functionName
함수의 이름을 가진 문자열입니다addEventListener 변수 함수 이름이 유효한 구문
menuFunc.setAttribute("oncommand","MainExtension.MyPlugin." + functionName + "();");
가 해당 메뉴 항목에 대한 호출 될 : 원래, 나는 각 메뉴 항목이 라인을 사용했다. 이것은 잘 동작했다. 내 확장 기능을 Mozilla Addons 페이지에 업로드 할 때 자동 코드 유효성 검사 프로그램에서이 행을 플래그로 지정하고 setAttribute를 사용하여 oncommand를 이러한 방식으로 설정하면 안전하지 않으며 addEventListener를 대신 사용해야한다고 말했습니다. 나는이 구문으로 전환 :
menuFunc.addEventListener("oncommand",function() {MainExtension.MyPlugin[functionName]},false);
하지만 메뉴 항목을 클릭하면 이제 아무 반응이 없습니다.
구문이 잘못되었거나 다른 것이 있습니까? 문제가 일반적인 'this'참조 오류라고 생각하지 않습니다. 나는 하나의 함수에서 'this'의 모든 사용을 제거하려했지만 여전히 작동하지 않았다. 함수가 전혀 호출되지 않는 것 같습니다. 오류도 생성되지 않습니다.
해야 하는가 ' oncommand '가 될 수 없다. addEventListener를 사용할 때 'command'는 대개 'on'접두사를 삭제합니다. – HBP
흠, 코드에 문제가있을 수 있지만 "oncommand"를 "command"로 변경 한 후에도 아무런 변화가 없습니다. –
아래의 대답에 대한 내 의견을 참조하십시오! –