2010-03-23 4 views
4

웹 페이지에서 iframe을 동적으로로드하는 스크립트가 있습니다. 여기에서 데모를 볼 수 있습니다 : DEMO동적으로 IFrame을로드하는 Jquery와 Ajax

비슷한 rseult를 얻기 위해 jquery를 사용하고 싶지만 좋은 슬라이딩 효과와 다른 div에서 iframe을로드하는 외부 링크를 사용하고 싶습니다. 기본적으로 한 페이지에 10 개의 링크가 있습니다. 링크를 클릭하면 iframe 창에서 새 내용을로드하고 전환 효과를 적용합니다. 누구든지이 플러그인이 있는지 알고 있습니까? 나는 처음부터 스크립트를 작성하기에 충분한 경험이 없기 때문에 어떤 도움을 주시면 감사하겠습니다!

답변

3

당신은 jQuery를 사용하여 iframe이 애니메이션을 할 수 있습니다 또는 애니메이션을 할 수

function loadFrame() { 
    var j$ = jQuery.noConflict(); 
    var frames = j$('.frameToChange'); 

    frames.each(function(index) { 
     j$(this).slideDown('fast'); 
     j$(this).attr('src', j$(this).attr('link')); 
    }); 
} 
+0

이 훌륭하지만, 내가 어떻게 10 개 별도의 iframe을 URL을 지정하는 것? wouldnt 더 나은 URL 속성을 (HTML에서)주고, iframe의 형태로 URL을로드 jquery를 사용하여? – JCHASE11

+0

@ JCHASE11, 귀하의 의견에 따라 업데이트. 필요한만큼 iframe을 class = "frameToChange"와 함께 추가하십시오. –

+0

Chris, 좋아 보이지만 아직 그다지 없습니다. 내가 만든 데모 페이지에서 코드를 볼 수 있습니다. http://vitaminjdesign.com/iframe/ 버튼을 클릭해도 아무런 변화가 없습니다. 귀하의 jquery 그것은 iframe을로드 할 말을하기 때문에 그것이라고 생각합니다. #test라는 iframe을로드 할 div를 만듭니다. div에로드되도록 코드를 조정하려면 어떻게해야합니까? – JCHASE11

0

jQuery에는 slide 효과가 내장되어 있습니다. 두 개의 iframe (이전 및 이전이라고 부름)을 사용하고 슬라이드 효과를 사용하여 두 프레임 사이를 전환하여 원하는 것을 얻을 수 있습니다.

1

아래의 식으로 뭔가를 시도

<input type="button" value="Load Frames" id="submit" name="submit" onclick="loadFrame()" /> 
<iframe class="frameToChange" link="http://www.apple.com" style="display: none" ></iframe> 
<iframe class="frameToChange" link="http://www.google.com" style="display: none" ></iframe> 

같은 페이지를 감안할 때 ... 의견에 따라 변경됨 iframe의 내용

iframe을 사용하여 수행하는 단점은 부모 스크립트가 iframe 내부에서 실행되는 스크립트와 통신하는 것을 허용하지 않는다는 것입니다. 다른 도메인의 악의적 인 스크립트로부터 보호하기 위해 도메인 간 제한이라고합니다.

iframe의 콘텐츠를 애니메이션으로 만들려면 iframe 내부에서로드되는 페이지의 일부로 애니메이션을 구현해야합니다. 그렇지 않으면 iframe 자체를 애니메이션화하기 위해 jQuery에는 이미 here으로 설명 된 몇 가지 기본 애니메이션 기능이 있습니다.

+0

이 시점에서 애니메이션은 기능에 이어 두 번째입니다. 그래도 알 수 있습니다! – JCHASE11

+0

부모와 iframe이 모두 동일한 도메인에있어 서로 상호 작용할 수있는 경우 반드시 그런 것은 아닙니다. 또한 iFrame이 동일한 사이트의 하위 도메인에서 콘텐츠를 가져 오는 경우 부모와 일치하도록 document.domain = 'mydomain.com'을 수행하여 도메인을 부모와 동일하게 할 수 있습니다. – Sam

+0

좋은 지적. iframe은 정적 페이지와 동일한 도메인 (하위 도메인)에 있으므로 애니메이션을 만들 수 있습니다! – JCHASE11

2
나는 다음과 같은 사용

:

$('iframe').load(function() { 
    $(this).animate({ 
     'height': this.contentWindow.document.body.scrollHeight + 'px' 
    }); 
});