2010-02-24 8 views
3

길고 짧은 이야기 Google 크롬 확장 프로그램에서 작업 중입니다. 확장 기능은 기본적으로 운영중인 페이지의 범위에있는 변수에 액세스 할 수 없습니다 (DOM을 통해 통신해야 함).자바 스크립트로 동적 삽입 스크립트

내가하려는 것은 페이지에 스크립트를 삽입하는 것입니다. 이것은 스크립트 태그와 src 속성을 정의하여 잘 작동합니다.

이 스크립트는 변수를 미리 초기화해야합니다. 이 변수를 초기화하기 위해 (외부 소스에서로드하는 대신) 인라인 코드로 스크립트 요소를 생성하려고 시도하지만 작동하도록하는 데 문제가 있습니다.

가능한가요? 그렇다면 스크립트 내에서 소스를 어떻게 정의합니까? JS 소스를 포함하는 텍스트 노드를 스크립트 요소에 추가하려고 시도했지만 아무 소용이 없습니다.

+0

http://stackoverflow.com/questions/2303147/injecting-js-functions-into-the-page-from-a-greasemonkey-script-on-chrome을 확인하십시오. –

답변

1

그것은 짜증 만이 할 수있는 가장 좋은 방법은 DOM으로 주입하여 데이터를 전달하기 위해 아마도 : http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication

당신은 또한 같은 수행하여 이러한 목표를 달성 할 수있을 것

:

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.text = 'alert("It works!");'; 
document.head.appendChild(script); 

테스트하지는 않았지만 콘텐츠 스크립트에서 작동 할 것으로 추측됩니다.

+0

고마워, 그게 내가 원하는거야. 왜 그것이 작동하지 않았는지 확실하지 않다. 단지 .text 특성을 설정하는 것보다 appendChild를 사용하려고했기 때문에 그것이 었는지 궁금하다. – Brad

관련 문제