programing

FancyBox iframe이 부모를 반환합니다.정의되지 않은 $(WordPress 사용)

css3 2023. 3. 31. 22:34

FancyBox iframe이 부모를 반환합니다.정의되지 않은 $(WordPress 사용)

iframe 내에서 FancyBox를 닫으려고 하는데parent.$항상 있다undefinediframe JavaScript 입니다.

 <script type='text/javascript' 
  src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js'>
 </script>
 <script type="text/javascript">
 jQuery(document).ready(function($){
     (function($) {
         $.fn.closeFancyBox = function() {
             $(this).click(function() {
                 parent.$.fancybox.close();
             });
         };
      })(jQuery);
      $('#cancel').closeFancyBox();
      });
 });
 </script>

교환parent.$.fancybox.close();와 함께alert('clicked');정상적으로 동작합니다.나는 왜 그런지 이해하지 않아요.parent.$undefinediframe이 같은 도메인에 있는 경우.

WordPress 2.9.1과 FancyBox for Wordpress 플러그인을 사용하고 있습니다.

  • 메인 페이지://server.local/web/test/index.php
  • iframe 페이지://server.local/web/test/wp-content/plugins/wp-test/test.htm

첫 번째 URL은 메인 페이지이고 두 번째 URL은 iframe 페이지입니다.server.local홈 테스트 서버입니다.

좋은 생각 있어요?도움이 된다면 소스 전체를 페이스트 박스에 넣을 수 있습니다.

WordPress는 모드에서 jQuery를 실행하므로 정의되지 않습니다.대신 이것을 사용하세요.

parent.jQuery.fancybox.close();

noConflict모드 수단$jQuery와 같지 않습니다.명시적으로 사용할 필요가 있습니다.jQuery액세스 할 수 있는 것에 액세스 할 수 있습니다.$.

내 대답은 워드프레스에 관한 것이 아니라 일반적으로 팬시박스에 관한 것이다.

iframe에 메인 jquery 스크립트(jquery-1.5.2.min.diag)가 포함되어 있는 경우 메인 페이지의 스크립트와 경합합니다.이 경우 parent.$"박스는 작동하지 않습니다.

기타 jquery 관련 정보(탭 등)는 iframe 내에서 동작합니다.따라서 iframe 내의 두 번째 jquery 스크립트가 악당이라는 것은 초보 프로그래머에게는 생각나지 않습니다.

어쩔 수 없었어요

window.window.$secebox.close();

이전에 유형 오류가 발생했습니다.

부모의 모든 변형.fancybox.close()는 기능하지 않았습니다.lib conflict가 있는 것 같습니다.

여기 최신 fancybox에 대한 해결 방법이 있습니다.이 경우 fancybox는 다시 열리지 않으므로 .hide() 메서드 대신 css display 속성을 사용해야 합니다.

parent.jQuery('#fancybox-overlay').css('display', 'none');
parent.jQuery('#fancybox-wrap').css('display', 'none');

이것으로 충분합니다;)

<a href="javascript:parent.jQuery.fn.fancybox.close();" >

이 게시물 덕분에, 사실 조금 안내가 되었지만...몇 분밖에 안 걸려서 미안하고 워드프레스용 팬시박스가 얼마나 짜증나는지 알아!!

그 어떤 제안도 나에게는 통하지 않았다.다음 코드를 사용하여 작업을 진행해야 했습니다.최신 버전이 parent.j를 지원하는 경우가 있습니다.Query.fancybox.close(); 접근법. 단, 이전 버전에서는 동작하지 않습니다.

이전 버전의 플러그인/Jquery가 있는 기존 사이트의 경우 다음과 같이 하십시오.

function close_window()
{
 $("#fancy_outer",window.parent.document).hide();
 $("#fancy_overlay",window.parent.document).hide();
 //window.top.window.$.fancybox.close(); this also does not work :(
}

Iframe 콘텐츠 내에서 close_window 함수를 선언하고 사용할 수 있습니다.

같은 문제가 발생했는데, 이 문제를 해결하기 위해

type:'iframe'

팬시박스에 전화를 걸었을 때, 그것은 나의 문제를 해결했다.

이걸 디버깅하려고 몇 시간이나 걸렸지만 아무 것도 얻지 못했어.그래서 저는 'FancyBox for WordPress' 플러그인을 최신 버전의 FancyBox로 교체했고, 그것은 수정되었습니다.진작에 했어야 했는데

WordPress와 WordPress의 다양한 플러그인을 사용한 후 플러그인에 의존하지 않고 수동으로 호출하는 것이 좋습니다.복잡성이 가중될 뿐이며, 이 복잡성은 여러분이 무엇을 하고 있는지 알고 있다면, 거기에 있을 필요가 없습니다.

WordPress에서 iframe to parent window jQuery에 대한 적절한 구문을 지적해 주신 Doug 씨 감사합니다.

안녕하세요, Wordpress 3.0에서 Fancy Box 수동 설치를 사용하여 Fancy Box iFrame을 닫는 데 문제가 있는 사람은 다음과 같습니다.

iframe에서 다음 링크를 사용합니다.

<a href="#" onClick="parent.jQuery.fancybox.close();" title="Close window">close fancybox</a>

동작:)

언급URL : https://stackoverflow.com/questions/2227096/fancybox-iframe-returns-parent-as-undefined-using-wordpress