2009-12-15 3 views
3

나는 스크립트를 HTML에 삽입해야하는 firewire에 대한 lightwiehgt 플러그인을 가지고 있습니다. 코드는 다음과 같습니다overlay.js에서 HEAD 요소 가져 오기 firefox 플러그인

var head = document.getElementsByTagName("head")[0]; 
var newscrpt;  
newscrpt = document.createElement('script'); 
newscrpt.type = "text/javascript" ; 
newscrpt.src = "http://blabla.com/..."; 
newscrpt = head.appendChild(newscrpt); 

문제는 document.getElementsByTagName("head")[0] 반환 '정의', 그리고 document.getElementsByTagName("head").length을 확인 그것은 현재 브라우저 document.onLoad 이벤트를 실행 0

있다는 것이다 그러나 나는 또한 그것을 호출 시도 window.setTimeout에서 로딩 동기화에 문제가 없는지 확인해야하지만 동일한 문제가 발생합니다.

누구로부터 아이디어가 있습니까? 감사합니다.

+0

greasemonkey userscript 일 수 있습니까? 이 경우 보안상의 이유로'unsafeWindow.document'에 액세스해야 할 수도 있습니다. –

+0

아니요. greasemonkey 스크립트가 아닙니다 ... – nivhab

답변

2

나는 지금 막 비슷한 문제가 있었으며 해결책을 찾지 못했습니다. 귀하의 게시물은 1 개월 전부터 있었으므로 문제가 해결되었는지 확실하지 않습니다. 링크가 귀하의 질문에 대답 할 수 아래 : 당신이 머리를 얻을 수 있습니다 그 후

var doc = frame.contentWindow.document; 

: https://developer.mozilla.org/en/Working_with_windows_in_chrome_code

+0

예, OP가 먼저 컨텐츠 창을 가져와야합니다. – Nickolay

+0

링크가 죽었습니다 "서비스를 사용할 수 없습니다. 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오." 질문에 대한 답을 포함시킬 수 있습니까? –

0

당신이 사용하는 경우는 frame 또는 iframe 개체, 당신은 직접 document를 참조하지만, 그런 짓을하지 말아야 . 일부 리소스를 추가하려면 jQuery를 사용하고 있습니다.

$(doc).find('head').append(
       '<link type="text/css" rel="stylesheet" href="MyStylesheet.css" />'); 

희망이 있습니다.