2013-05-13 1 views
0

웹 사이트의 컨텐트가있는 위젯을 타사 웹 사이트에 iframe 형식으로 제공하고 싶습니다. 이 호스트의 웹 사이트에 페이지 찾을 수 없다는 메시지가 표시됩니다 우리의 웹 사이트가 다운 또는 유지 보수 모드에있을 행사에서 원본 서버가 다운 된 경우 iframe이 렌더링되지 않도록 방지

<iframe src="http://oursite.com/iframe"> </iframe>

, 우리는 iframe을 전혀 렌더링하지 않으 .

이렇게하려면 우리 서버 (oursite.com)가 200 상태로 응답하는지 확인한 후 iframe을 동적으로 임베드해야합니다.

"확인"프로세스를 가능한 한 가볍게 만들기 위해 빈 응답 본체를 반환하는 URL http://mysite.com/status을 만들었습니다. 서버가 다운되거나 유지 보수 모드가 아니면 응답 상태는 항상 200입니다.

질문-1 : http://oursite.com/status로 요청을 우리는 다음을 추가하기로 결정 할 수 있도록 (응답 상태를 얻기 위해 호스트의 웹 사이트에 배치 할 수있는 자바 스크립트 (일반/JQuery와) 코드 샘플은 무엇입니까 iframe 태그를 문서에 추가했는지 여부)?

질문 2 : oursite.com이 다운 된 경우 iframe을 렌더링하지 못하도록하는 목표를 달성하는 가장 좋은 방법입니까?

+0

jQuery가 타사 웹 사이트에 포함되어 있습니까? 그렇지 않은 경우 아약스 요청을 보내기 위해 전체 jQuery 라이브러리를 포함하고 싶습니까? 도메인 간 문제도 발생합니다. –

답변

2

자바 스크립트를 사용하여 이미지 요소를 만들고 대상 도메인에서 임의의 이미지를로드하십시오. 이미지 요소의 onload 이벤트를 사용하여 iframe을 표시합니다. 이미지가로드되지 않으면 iframe이 표시되지 않습니다.

(function($) { 

    var img = $('<img/>'); 
    img.on('load', function() { /* show iframe */ }); 
    img.prop('src', 'http://www.example.com/my.gif'); 

})(jQuery); 

이 방법을 사용하면 별도의 상태 URL이 필요하지 않습니다. 이것은 당신의 목표를 달성하는 매우 가벼운 방법입니다.

1

<script src="http://mysite.com/mysitewidget.js"></script>을 사용하여 iframe을 만듭니다. 서버가 중단되어 스크립트를 다시 얻을 수없는 경우 iframe이 생성되지 않습니다. (스크립트가 시간 초과 될 때까지 기다리는 동안 사용자의 사이트 속도가 느려질 것입니다.)

관련 문제