2013-07-09 3 views
1

XHTML HTML 파일을로드하려는 html 파일이 있습니다.크로스 도메인 파일에서 자바 스크립트 사용 안함

<div id='some-id'></div> 
<div id='some-id-2'></div> 
<script type='text/javascript'> 
$('#some-id').load('some-url'); 
</script> 

내 문제는 외부 HTML 파일을 삽입 한 후 실행 일부 자바 스크립트 코드가 포함되어 있습니다 : 다음은 내 코드입니다. 이 문제를 어떻게 방지 할 수 있습니까? (URL입니다 크로스 도메인 내가 원격 도메인 서버에 대한 권한이 없습니다)

+0

아약스를 사용하여 .html() 대신에 $ ('# some-id') [0] .innerHTML =을 통해 삽입하십시오 (로드로 내부에서 호출 됨) – dandavis

+0

@Samuel, 'some-url' 하나의 최상위 요소가 있습니까? 이 경우 URL 다음에 해당 요소와 일치하는 선택기를 지정할 수 있으며'load()'는 스크립트를 제거합니다. –

+0

외부 파일로드가 전혀 작동합니까? (그렇다면 SOP는 어떻게 작동합니까?) 스크립트를 실행하는 것이 잘못된 이유는 무엇입니까? – Bergi

답변

5

최고의 솔루션을하지 않을 수 있습니다,하지만 당신은 반환 데이터를 제어 할 수 없기 때문에 -

을 당신은로드 할 수 있습니다 일부 HTML의 apsillers 언급처럼

$('#some-id').load('http://www.some-url.com/index.html div#elementId'); 

또한, 당신은 에게 스크립트 제외 할 수 있습니다 :

$('#some-id').load('http://www.some-url.com/index.html :not(script)'); 

을 또는 당신이 반환 수준에서 그것을 제거 할 수 있습니다 :

$.get('http://www.some-url.com/index.html', function(data) { 
    $(data).find('script').remove(); 
    $('#some-id').html(data); 
}); 
관심이 그 요소 만
+0

이 명령을 설정하기 전에 javascript 코드 remote가 실행되었으므로 사용하지 마십시오. –

+0

DOM에 삽입되지 않으면 실행되지 않아야합니다.'$ .get' 메소드를 사용하십시오. – casraf

+0

get 메소드를 사용할 때와 여전히 동일합니다. –

관련 문제