2013-10-16 2 views
1

JQuery/AJAX를 사용하여 새 태그를 업데이트/삽입하려고합니다. 스크립트 태그에서 발견 된 URL은 다른 도메인 (웹 서버)의 URL이며 제어 할 수 없습니다. 웹 서버에서 제공하는 결과는 iframe에 반환됩니다 (다시 말하면 응답 형식을 제어 할 수 없음).문제 업데이트/삽입 AJAX를 사용하여 <script> 태그를 삽입

다음 두 가지 해결책을 시도했습니다. (클릭 버튼은 테스트 목적으로 만 사용됩니다).

첫 번째 해결 방법 :

$(document).ready(function() { 
    $("button").click(function() { 
     var NewScript = document.createElement('script'); 
     NewScript.type = 'text/javascript'; 
     NewScript.src = 'http://www.contactedurl.com/query&callback=?'; 
     $("#TDiv").append(NewScript); 
    }); 
}); 

두 번째 해결 방법 :

$(document).ready(function() { 
    $("button").click(function() { 
     var NewScript = document.createElement('script'); 
     NewScript.type = 'text/javascript'; 
     NewScript.src = 'http://www.contactedurl.com/query&callback=?'; 
     var script = document.getElementsByTagName('script')[0]; 
     script.parentNode.insertBefore(NewScript, script); 
    }); 
}); 

이러한 솔루션은 모두 다음과 같은 경고 메시지, 따라서 어떤 업데이트가 수행되지 않습니다 생성 :

을 비동기 적으로로드 된 외부 스크립트에서 document.write()를 호출합니다. 무시되었습니다.

이 메시지가 생성되는 이유와 업데이트가 실행되지 않는 이유를 알고 있지만이 제한 사항이나 다른 해결책을 찾지 못했습니다.

누군가가 대체 솔루션을 알고 있는지 궁금합니다.

감사합니다.

답변

0

당신이하는 것처럼 쉽게 할 수 없습니다. 스크립트를 정상적으로 포함시켜야합니다.

<div> 
    <script src="http://www.contactedurl.com/query&callback=?"></script> 
</div> 

또는 document.write

(그것은이 방법을 수행하는 매우 무의미하지만) : 당신이 출력이 원하는 곳 <div>...</div>

<div> 
    <script> 
     document.write("<scr"+"ipt src='http://www.contactedurl.com/query&callback=?'></scr"+"ipt>"); 
    </script> 
</div> 

.

+0

안녕 케빈 $.getScript()라는 jQuery를가했습니다. 시간과 답변에 감사드립니다. 몇 가지 솔루션을 실험하고 독서를 한 후에, 나는 당신이 확인한대로 올바른 방향으로 움직이지 않는다고 결론을 내 렸습니다. 그럼에도 불구하고 스크립트 태그에서 소스 URL을 동적으로 변경하는 대체 방법이 있어야한다고 생각하겠습니까? – JF0001

+0

문제는 URL을 변경하지 않습니다. 문제는 스크립트가 수행하는 작업입니다. document.write()는 문서가 닫힌 후에 실행되면 문서를 완전히 대체합니다 (문서가 * 준비가되었을 때 발생합니다 *). –

관련 문제