2010-12-05 3 views
1

주 문서에있는 웹 사이트는 다음과 같은 성명을 사용하여 자바 스크립트 파일을 포함firefox 사이드 바에서 자바 스크립트 링크를 호출하는 방법은 무엇입니까?

<script src="/somescript.js" type="text/javascript"></script> 

incuded 파일에 정의 된 자바 스크립트 함수를 실행하는 웹 사이트에 대한 링크도 있습니다.

<a href="javascript:functionname('parm1', 'parm2');" <img src="http://.../button.png" id="pushme" alt="" height="80" width="200"> </a> 

가 어떻게 파이어 폭스 사이드 바에서 주 문서의 맥락에서 functionname('parm1', 'parm2');을 실행할 수 있습니다 것 같습니다?
내가 지금까지 시도한 : mainWindow[functionname] js 함수에 대한 포인터를 얻을 수 있지만 페이지가 완전히로드 된 경우 항상 null을 반환합니다. (자바 스크립트 소스가 별도의 파일에 포함되어 있기 때문에 발생합니까?) contentDocument.getElementById("parentdiv").getElementsByTagName('a')[0].click(); 메소드를 호출 할 수 있지만 클릭이 사용 가능한 것으로 보이지 않습니다. (링크를 클릭() 할 수있는 방법이 있습니까?)

js 함수를 실행하는 다른 방법이 있습니까?
지원해 주셔서 감사합니다.

+0

아마도 중복 된 http://stackoverflow.com/questions/4320025/how-to-let-a-sidebar-execute-javascript-code-from-main-document –

+0

두 질문 모두 똑같은 문제에서 영감을 받았으며 두 가지 질문에 모두 귀중한 대답이 있습니다. 고맙습니다. – Nanadada

답변

1

현재 창 인스턴스 변수가 아니기 때문에 창 핸들을 얻을 수 없습니다. window.open()을 사용하고 결과 핸들을 변수에 저장하여 창에 대한 참조를 가져올 수 있습니다. MainWindow를가 [FUNCTIONNAME]를 JS 함수에 포인터를 얻을 수 있지만, 는 항상 페이지 가 완전히로드 된 경우에도, null를 돌려 : 내가 지금까지 시도했습니다 무엇

이다. 자바 스크립트 소스 가 별도의 파일에 포함되어 있기 때문에 (이 이 발생합니까?

파일을에서 포함되는 경우 그것은 중요하지 않습니다는 함수는 정의가 실행시 브라우저의 마음에있는로 제공됩니다.

링크 방금 창 핸들로 호출 할 수 있습니다 '클릭'만들려면 :. 빠른 예를 들어,

물론
var myWindow = window.open("foo.html"); 

<a href="javascript:myWindow.functionname('parm1', 'parm2');"> 

, 우리가 사용되어서는 안 인라인 자바 스크립트하지만 확인을 :)

관련 문제