2011-10-06 5 views

답변

0

함수를 정의한 다음 본문 끝의 스크립트 요소에 직접 쓸 수 있습니다. 예 :

function myFunc() { 
    // ... 
}  

document.body.addEventListener('load', function() { 
    var script = document.createElement("script"); 
    script.textContent = "(" + myFunc.toString() + ")();"; 
    document.body.appendChild(script); 
}, false); 
+0

안녕하세요, 저는이 코드를 GreaseMonkey에서 시도했습니다. 그러나 경고는 사라지지 않았다. function myFunc() { 경고 ('작동'); } document.body.addEventListener ('load', function() { var 스크립트 = document.createElement ("스크립트"); script.textContent = "("+ myFunc.toString() + ")() ; "; document.body.appendChild (script); }, false); – sesquipedalians

+0

솔직히, 나는 지금 파이어 폭스를 설치하지 않았다. 방금 만든 스크립트의 일부를 필요에 맞게 만들었습니다. 여기서 제대로 작동하지 않는 것을 알아 내려고 시도하십시오. 그것은 가까이에 있어야합니다. 아마도, 제대로 작동하지 않는 'body.addEventListener'일 것입니다. –

2

바로 여기에 응답하려면 : 형식적인 방법이지만 짧은이

document.body.appendChild(document.createElement('script')); 
document.body.lastChild.innerHTML = 'function myFunc() { alert("the alert"); } myFunc();'; // add content i.e. function definition and a make a call 

수 그러나, 귀하의 질문에 설명이 혼란

var newElem = document.createElement('script'); //create a script tag 
newElem.type = 'text/javascript'; // add type attribute 
newElem.innerHTML = 'function myFunc() { alert("alerting"); } myFunc();'; // add content i.e. function definition and a call 
document.body.appendChild(newElem); // Insert it as the last child of body 

삽입 할 기능을 페이지에 추가 한 다음 GM으로 호출 할 수 있습니까? 왜 그것을 페이지에 삽입합니까? 위의 코드에서 호출이 GM이 아닌 페이지 범위 내에 있다는 것을 유의하십시오.이 경우 GM에서 호출 할 수는 없습니다. 안전하지는 않지만 일반적으로 권장하지 않는 것처럼 호출해야합니다.

someplace.innerHTML = '<a onclick=myFunc()>Execute myFunc</a>'; 

당신이 페이지 범위에있을 필요가 않습니다 삽입하려면이 기능 : 같은 페이지 무언가에 노드를 삽입해야? GM 범위에서 함수를 남겨 두거나 삽입하지 않을 경우 GM 범위에서 호출 할 수 없습니다.

관련 문제