2011-09-02 4 views
0

onclick() 링크 이벤트 (<a>)를 실행하려고하지만 방문자를 아무데도 데려 가지 않고 JavaScript 코드를 실행합니다. 그러나 콘텐츠 스크립트가 실행되는 웹 페이지의 스크립트에 액세스 할 수 없다는 것을 고려하여 코드를 어떻게 실행할 수 있습니까? 실행되어야하는 코드는 웹 페이지에서 선언 된 사용자 정의 함수를 사용합니다.콘텐츠 스크립트에서 웹 페이지 스크립트에 액세스

+0

외부 파일에 액세스해야하는 javascript를 넣을 수없는 이유는 무엇입니까? – Remi

+0

그것은 내 웹 페이지가 아니며, 내 파일에 그러한 코드를 가지고 다니지 않는 것을 선호합니다. – Bogdacutu

답변

0

은 (jQuery를 사용)에 대해 무엇을 :

은 스크립트에서 페이지 당신이 실행할 수 있도록하려는 기능 '이 myfunc'을 포함 같아요.

var script = $("#webscript"); (또는 코드를 포함하는 스크립트 태그 얻을 수있는 다른 방법)

지금
var myfunc = null; // declare the function-name (perhaps even not necessary) 
eval(script.html()); // where myfunc is declared and assigned to your myfunc variable 

하는 기능을 사용하려고 :

myfunc(); 

Edit2가 : 아마 당신은 또한 수를 'insert' the code again :

var copyScript = document.createElement('script'); 
copyScript.type = 'text/javascript'; 
copyScript.text = script.html(); 
document.head.appendChild(copyScript); 
+0

'onclick'에있는 코드로'eval()'을 시도해 보았습니다 : 필요한 함수가 선언되지 않았기 때문에 작동하지 않습니다. – Bogdacutu

+0

그런 이유로 .html()을 사용하여 텍스트로 복사 된 실제 코드가 들어있는 문자열 리터럴을 사용하여 선언해야합니다. – Remi

+0

아, 오해 한 것 같습니다. 그러나 페이지가 동적 인 경우 어떻게 코드를 선언 할 수 있습니까? 그것은 내 측면에서 수정없이 모든 페이지에서 작동해야합니다. – Bogdacutu

관련 문제