FancyBox iframe이 부모를 반환합니다.정의되지 않은 $(WordPress 사용)
iframe 내에서 FancyBox를 닫으려고 하는데parent.$
항상 있다undefined
iframe 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.$
이undefined
iframe이 같은 도메인에 있는 경우.
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
'programing' 카테고리의 다른 글
'rufous-sandbox'라는 바디 태그에 이상한 iframe이 추가됨 (0) | 2023.03.31 |
---|---|
MongoDB mongorestore 오류: local:::facet::_S_create_c_locale 이름이 잘못되었습니다. (0) | 2023.03.31 |
Node.js를 사용한 데이터 스트리밍 (0) | 2023.03.31 |
create-react-app로 구축된 React 프로젝트를 다음 create-react-app 버전으로 업그레이드하는 방법은 무엇입니까? (0) | 2023.03.31 |
AngularJS에서 ng-model="my_{$index}"를 ng-model로 동적으로 생성하는 방법 (0) | 2023.03.31 |