2010-04-08 5 views
2

.ajax를 통해 jquery-ui 대화 상자에 내용을로드하고 있습니다. 그게 다 잘 작동하지만 지금은 대화 상자에 포함 할 OpenX 광고를 받았습니다. & 어떻게 할 수 없는지 알아낼 수 없습니다.아약스를 통해 들어올 때 모든 스크립트가 삭제된다는 것을 알고 있습니다. $ .getScript를 사용하여 대화 상자에서 .js 파일을로드하는 방법을 알고 있지만 OpenX 광고 스크립트는 document.write를 사용하므로 생각합니다. 인라인으로 페이지의 원하는 위치에 삽입 될 것으로 예상됩니다.
다음과 같이 주 콘텐츠의 아약스 성공에 대한 div에 이스케이프 처리 된 스크립트 문자열을 추가하려고 시도했지만 결과적으로 페이지에 광고가있는 페이지로 리디렉션됩니다. 시도는 다음과 같습니다 :jquery-ui 대화 상자에 OpenX 광고를 포함 하시겠습니까?

$("#" + idHelpPage).find(".adScript").append("<script type='text/javascript'>var m3_u = (location.protocol=='https:'?'https://d1.openx.org/ajs.php':'http://d1.openx.org/ajs.php');var m3_r = ... etc etc 

내가 jQuery로 확인하지만, 자바 스크립트와 큰 아니에요, 정말 어떤 도움을 주셔서 감사합니다 것입니다! 또한 다른 코드를보고 싶다면.

답변

3

확실히이 질문은 꽤 오래 전에 요청되었습니다. 그러나 openX ajs.php 파일은 document.write() 함수를 반환합니다. jQuery의 $ (document) .ready() 클래스 메소드를 사용하면 현재 페이지를 덮어 씁니다.

document.write()는 페이지로드 절차 중에 호출 될 경우에만 (현재 페이지를 덮어 쓰지 않고) 올바르게 실행됩니다.

이 장애물을 극복하는 데는 두 가지 방법이 있으며 AJAX (openX 서버가 웹 사이트와 동일한 URL 도메인에 있거나 PHP, ASP 등의 서버 측 스크립팅이있는 경우) 또는 JSONP (openX 서버가 다른 도메인에있는 경우).

AJAX/JSONP를 사용하여 jQuery를 호출하고 해당 서버 스크립트를 URL에로드하고 document.write() 함수의 내용을 반환하려면 PHP, ASP 등으로 서버 측 스크립트를 설정해야합니다 ajs.php 파일이 리턴합니다.

+0

스티브에게 감사드립니다. 우리는 결국이 요구 사항을 수행하고 대화가 작업에 적합하지 않아 단순화 된 작업을 수행했습니다. – planetClaire

관련 문제