2013-03-20 1 views
0

Colorbox는 iframe을 내용으로로드하는 특정 메서드를 제공하며 해당 종류의 colorbox 팝업이 닫히면 상위 페이지가 다시로드되거나 새로 고쳐지지 않습니다.Colorbox - colorbox 내용 내에서 맞춤 iframe을 삭제할 때 상위 페이지를 다시로드하지 못하도록 막으시겠습니까?

그러나, 내 경우에는 colorbox 내용을 교환하지 않고 열려있는 colorbox 안에 사용자 정의 iframe 요소를 추가/추가해야합니다. 이미 열려있는 colorbox 컨텐트는 iframe이 전혀 존재하지 않는 순수한 인라인 HTML입니다. 이 새로운 맞춤형 iframe의 내용은 고유 한 페이지 또는 완전한 iframe 요소로로드 될 때만 작동하는 주석 처리 된 주석 형식입니다. iframe colorbox 내용에 포함 된 링크를 클릭하면 아래에 추가

내 기능 : - IFRAME가 삽입에 대한 일반로드 프로세스를 통해 진행됩니다

$('#cboxLoadedContent').append('<IFRAME frameborder="0" src="'+url+'" id="loadednode">'); 

는 지금은 그 문제를 작동하지 얻을 수 그 내용을 완벽하게 표시합니다.

유일한 문제는, 최대한 빨리 닫기 버튼을 사용하거나 종료 colorbox 네이티브은 iframe 내용 달리, 오버레이 를 클릭하여이로드 colorbox의 "밖으로"를 클릭로, 부모/톱 페이지가 갑자기 다시로드됩니다

!

어떻게 이런 일이 발생하지 않도록 할 수 있습니까? colorbox-native iframe이 제거 될 때 페이지 새로 고침을 피하게 만드는 이유는 무엇입니까? iframe을 colorbox 내용에 추가하면 제거 할 때 상위 페이지가 다시로드됩니까?

참고로 iframe의 내용 인 페이지를 colorbox-native iframe으로로드 할 수 있으며 종료하면 페이지를 다시로드하지 않으므로 문제가 iframe의 내용이 아닙니다. case - colorbox가 처리 된 iframe 대 colorbox 처리되지 않은 iframe을 제거하는 방식이어야합니다.

일부 추측 :

는 "이름"속성을 가진 또는 고정 "ID"를 가지고 있지 문제가 발생할 속성 하는가
  • ?
  • iframe이 "src"속성이없는 인라인 인라인 HTML에 포함되어 있지만 클릭하면 해당 "src"경로가 표시됩니다. 이러한 문제를 피할 수 있습니까?
  • "이미있는 HTML 내용을 제거하지 않고보고있는 색상 상자에이 iframe을로드 하시겠습니까?"라는 다른 방법이 있습니까? (드루팔 6 새로운와 호환되지 않기 때문에 이전 버전)를

내가 사용하고 있습니다 :

답변

0

SOLVED :

colorbox로 열린 초기 내용은 인라인 HTML입니다. colorbox의 "inline"명령을 사용합니다 (hidd 컨테이너를 colorbox 내용에 넣습니다). 이 유형의 콘텐츠가있는 색상 상자가 닫히면 colorbox의 일반적인 동작은 원래 위치 (display: none div 컨테이너)로 다시 이동하는 것입니다. 및 colorbox에 수동으로 추가 한 모든 HTML과.

따라서 새 HTML을 삽입 한 후 colorbox를 닫을 때 colorbox는 이러한 모든 내용을 페이지의 숨겨진 컨테이너로 다시 옮겼습니다. 그리고 iframe을 움직일 때 자연스럽게 내용이 다시로드됩니다. (이마를 때 리다).

$(document).bind('cbox_cleanup', function(){ 
    $('iframe').remove(); // Remove all iframes, or else colorbox inline moves them to original location with HTML content, triggering another load on it 
    console.log('Done killing iFrame... moving contents back.'); 

애매한 use- : colorbox 앞서 가고 원래 위치로의 HTML 콘텐츠를 반환하기 전에

그래서 실제 해결책은 강제) (처음에이 없었다 어떤 iframe을 제거 포함 나는 확신하지만, iframe과 인라인 컬러 박스 내용을 섞어 누군가를 돕기를 바랍니다.)

+0

언제 'cbox_cleanup'을 실행합니까? – Crimbo

+0

$ .bind() 메소드를 사용하여 자동으로 호출됩니다. Colorbox에 따르면'close 메소드가 시작될 때'cbox_cleanup'이 트리거됩니다. " 따라서 닫기 버튼, ESC 키 또는 오버레이 클릭을 클릭하여 "닫기"작업이 트리거 될 때마다 위의 사용자 정의 함수가 실행되고 루틴 정리 프로세스를 완료하기 전에 iframe을 제거합니다. 인라인 컨텐츠를 기본 페이지로 다시 가져 오기). – atwixtor