확장만들때, OnContextMenu에 null을 줄려면?

Mozilla Firefox 사용에 대한 일반적인 질문과 답을 해 주는 게시판입니다. 질문을 하기 전에 FAQ를 읽어 보시는게 도움이 될 것입니다.
Post Reply
allieus

확장만들때, OnContextMenu에 null을 줄려면?

Post by allieus »

연습삼아, 파이어폭스 확장을 하나 만들어보고 있습니다.
구현해야할 기능 중에, 오른버튼 클릭을 막아놓은 걸 풀어주는 것도 하나 넣어볼려고 합니다.

자바스크립트로는 아래 코드로서, body에 적용해둔 oncontextmenu="return false;" 가 풀리더군요.

Code: Select all

window.oncontextmenu = null;
인터넷에 파폭1.x 때 그런 확장이 있길래 코드를 보니 다음과 같이 되어있더군요.

Code: Select all

void(window.content.document.ondragstart = window.content.document.body.ondragstart = null);
void(window.content.document.oncontextmenu = window.content.document.body.oncontextmenu = null);
void(window.content.document.onselectstart = window.content.document.body.onselectstart = null);
void(window.content.document.onclick = window.content.document.body.onclick = null);
void(window.content.document.onmousedown = window.content.document.body.onmousedown = null);
void(window.content.document.onmouseup = window.content.document.body.onmouseup = null);
void(window.content.document.onbeforecopy = window.content.document.body.onbeforecopy = null);
void(window.content.document.onbeforecut = window.content.document.body.onbeforecut = null);
void(window.content.document.oncopy = window.content.document.body.oncopy = null);
load 이벤트를 잡아서 위와 같이 해봤는데, 다음과 같은 에러가 뜨네요.

Code: Select all

[Exception... "Component is not available"  nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"  location: "JS frame :: chrome://test/content/test.js :: anonymous :: line 151"  data: no]
다음과 같이 해도 안 먹구요.

Code: Select all

window.content.oncontextmenu = null;
혹시 방법이 없을까요?
읽어주셔서 감사드립니다. :)
allieus

Re: 확장만들때, OnContextMenu에 null을 줄려면?

Post by allieus »

xpcom으로 preference에 접근이 가능하군요. 다음 코드로 해결했습니다. :)

Code: Select all

var pref = Components.classes['@mozilla.org/preferences-service;1']
    .getService(Components.interfaces.nsIPrefBranch);
pref.setBoolPref('dom.event.contextmenu.enabled', false);
Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot] and 0 guests