最新のfancybox(2.0.4)を使用していて、iframe用のfancyboxを作成しました。コンテンツは正しく表示されます。 iframe内に表示されるHTMLに「閉じる」ボタンを追加します。閉じるボタンが、ファンシーボックスの右上隅にある「x」をクリックしたときと同じ結果になることを願っています。私はよく知っています FancyBox iframeはparent。$を未定義として返します(WordPressを使用) 、そして私のparent
は何も含まれていないDOMオブジェクトです。また試した
window.parent.jQuery.fancybox.close();
window.parent.jQuery.fn.fancybox.close();
parent.jQuery.fn.fancybox.close();
parent.jQuery.fancybox.close();
何か助けはありますか?
更新:
$(document).ready(function() {
$(".fancybox").fancybox({
maxWidth : 800,
maxHeight : 600,
fitToView : false,
width : '70%',
height : '70%',
autoSize : false,
closeClick : false,
type : 'iframe',
openEffect : 'none',
closeEffect : 'none',
afterClose : function() {
window.location.reload();
}
});
});
<a class="fancybox fancybox.iframe" id="newLink" href="new.html">link</a>
fancyboxiframeウィンドウを閉じるボタンをnew.html
内に配置するにはどうすればよいですか。
更新:完全なhtmlファイル
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="fancybox/jquery.fancybox.css?v=2.0.4" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/jquery.fancybox.pack.js?v=2.0.4"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".fancybox").fancybox({
maxWidth : 800,
maxHeight : 600,
fitToView : false,
width : '70%',
height : '70%',
autoSize : false,
closeClick : false,
type : 'iframe',
openEffect : 'none',
closeEffect : 'none',
afterClose : function() {
window.location.reload();
}
});
});
</script>
</head>
<body>
<a class="fancybox fancybox.iframe" id="newLink" href="b.html">link</a>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<link rel="stylesheet" href="fancybox/jquery.fancybox.css?v=2.0.4" type="text/css" media="screen" />
<script type="text/javascript" src="fancybox/jquery.fancybox.pack.js?v=2.0.4"></script>
</head>
<body>
<input type="submit" value="Cancel" id="cancelBtn" onclick="parent.jQuery.fancybox.close()"/>
</body>
</html>
手動で閉じるボタンは次のようになります。
<a href="javascript:parent.jQuery.fancybox.close();"><img src="myCloseButton.png" alt="close fancybox" /></a>
[〜#〜] update [〜#〜]:<form>
タグではなくonsubmit
を使用する必要がありますbutton
画像で、「new.html」に次のように設定します
<form id="login_form" action="process.php" onsubmit="javascript:parent.jQuery.fancybox.close();">
UPDATE#2: 作業デモページを参照
UPDATE#3:議論が長すぎてどこにも行かなくなったので、この回答に対する追加のコメントをすべて削除することにしました。しかし、これが他の誰かを助けることができるなら、私はコードと実際のデモンストレーションへのリンクを許可しました。
try{
parent.jQuery.fancybox.close();
}catch(err){
parent.$('#fancybox-overlay').hide();
parent.$('#fancybox-wrap').hide();
}
!!! onCloseをサポートしていません!!!
Javascriptでこれを試してください:
$ .fancybox.close();