2012-11-09 5 views
2

jsdom과 jQuery를 사용하여 DOM 본문에 스크립트를 어떻게 추가합니까? $('body').append('<script src="..."></script>')을 사용하는 분명한 대답은 실제로 문서 head에 스크립트를 추가하는 것입니다.jsdom : jQuery로 본문에 스크립트 추가하기

이 내가 함께 테스트하고있어 기본적인 Node.js를 스크립트입니다 :이은 <sc ript src="..."></script>에 공간을 추가 할 경우,

<head><script src="http://example.com/script.js?_=1352426933034"></script>... 

흥미롭게 :로 시작하는 어떤 결과

var jsdom = require('jsdom'); 

jsdom.env(
    "http://google.com", 
    ['http://code.jquery.com/jquery-1.6.min.js'], 
    function(err, window) { 
     var $ = window.jQuery; 
     $('body').append('<script src="http://example.com/script.js"></script>'); 
     console.log($('html').html()); 
    } 
); 

올바르게 추가되었으므로 뭔가 (jsdom, 나는)이 스크립트를 하이재킹하여 캐시 버스터 (?)를 추가하고 헤더에 넣을 수 있습니다. 이 문제의 원인은 입니다.이 발생하지 않도록하려면 어떻게해야 스크립트를 대신 추가 할 수 있습니까? 어떻게 그 가치를 들면

, 난 그냥 jsdom이 문제가 발생

$ npm ls 
/Users/codyaray/dev/proxy/test 
└─┬ [email protected] 
    ├─┬ [email protected] 
    │ └── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    ├── [email protected] 
    └─┬ [email protected] 
    ├─┬ [email protected] 
    │ ├── [email protected] 
    │ └─┬ [email protected] 
    │ └── [email protected] 
    └── [email protected] 
+0

하지 대답을하지만 당신은 [안녕]을 사용하여 시도 할 수 있습니다 안녕) –

답변

0

만 나는 <script><head>에를 추가합니다.

다음 코드를

$('head').append('<script type="text/javascript" src="script.js"></script>'); 

이 결과는 :

<head> 
    <script type="text/javascript" src="script.js"></script> 
    <script src="script.js?_=1352426933034"></script> 
</head> 

이 이미 설정 src 속성 <script> 요소를 추가하는 경우에만 발생하는 것으로 보인다. 모든 먼저 추가 할 때 모든 권리 것 같다 <script> 비어 는 다음과 같이 그 src 설정 : https://github.com/MatthewMueller/ (

$('<script>').appendTo($('head')).attr('src','script.js'); 
관련 문제