2012-03-07 2 views
1

greasemonkey를 통해 웹 페이지에 자바 스크립트 스크립트 참조를 직접 삽입하려고합니다. 어떤 이유로 든 작동하지 않는 것 같습니다. 내가 가지고있는 코드는 다음과 같습니다 :Greasemonkey로 직접 코드 삽입을 통한 원격 JS 파일 포함

var headID = document.getElementsByTagName("head")[0];   
    var newScript = document.createElement('script'); 
    newScript.type = 'text/javascript'; 
    newScript.src = 'http://cubes-workbench.googlecode.com/files/test.js'; 
    headID.appendChild(newScript); 

어떤 도움을 주시면 감사하겠습니다. 고맙습니다. (1 개 이상을 선택)하지 않는 한

+0

JS 콘솔의 내용은 무엇입니까? 오류가 있습니까? 'console.log (headID)'. Google은 "JS 디버그" – PiTheNumber

답변

1

코드는 작동합니다 :

  • 문서는 실제로 <head>이 없습니다. 모든 페이지 또는 iFrames가 아닙니다.
  • Greasemonkey 스크립트는 문서 시작시 실행되도록 설정됩니다.
  • 이 브라우저 부가 기능 블록 즉 JS 것을 - 노 스크립트, AdBlock을, 명 RequestPolicy
  • 방화벽 또는 다른 보안 응용 프로그램 또는 장치 블록이 스크립트를.
  • 제외, 또는 경기 지시는 예상대로 페이지에서 발사 또는 iframe에서 GM 스크립트를 방지 있습니다.
  • 다른 건 없나요?

처음에는 표준 기능을 사용하십시오. 이 시도 :

function addJS_Node (text, s_URL, funcToRun) { 
    var D         = document; 
    var scriptNode       = D.createElement ('script'); 
    scriptNode.type       = "text/javascript"; 
    if (text)  scriptNode.textContent = text; 
    if (s_URL)  scriptNode.src   = s_URL; 
    if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + 
    ')()'; 

    var targ = D.getElementsByTagName('head')[0] 
       || D.body || D.documentElement; 
    targ.appendChild (scriptNode); 
} 

addJS_Node (null, 'http://cubes-workbench.googlecode.com/files/test.js'); 


을 그 대상 페이지에 완전한 GM 스크립트와 링크를 게시 작동하지 않는 경우.

+0

고맙습니다. 제 생각에 브라우저 애드온이라고 생각합니다. 이러한 방식으로 스크립트 파일을 포함하면 웹 페이지에서 원래 코드화 된 것처럼 사용할 수 있습니까? – cubesnyc

+0

예. 합병증이 생기면 질문을 게시하고 대처 방법이 일반적으로 가능합니다. –