我知道此问题已经讨论过,但我似乎无法让它发挥作用。我有一个带有iframe的主HTML页面。我正在使用jQuery prettyphoto,当我点击iframe中的链接时,我想知道如何在父窗口中显示灯箱?
母版页
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Master Page</title>
</head>
<body>
<iframe src="iframe.html" width="300" height="300px" frameborder="0"></iframe>
</body>
</html>
iFrame页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>iframe</title>
<style type="text/css" media="screen">
@import url("assets/css/infotech-iframes.css");
@import url("assets/css/infotech-popup.css");
</style>
<script src="assets/js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="assets/js/jquery.popup.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<a href="assets/images/screenshots/campaign-setup-lg.png" rel="prettyPhoto[gallery]"><img src="assets/images/screenshots/campaign-setup-sm.gif" /></a>
<script type="text/javascript" charset="utf-8">
$(document).ready(function(){
$("a[rel^='prettyPhoto']").prettyPhoto();
});
</script>
</body>
</html>
感谢您提供的任何帮助。
答案 0 :(得分:2)
CalebD的答案是正确的(请参阅帖子了解更多详情)。但是,为了能够访问iFrame的父级中的API,您必须在父级中添加以下初始化代码,以便其中的任何一个都能正常工作
$.fn.prettyPhoto({ social_tools: false });
答案 1 :(得分:1)
这仅在父框架和子框架的域相同时才有效。
您需要在父框架中加载必要的JavaScript。然后在iframe中尝试这样的事情:
$(document).ready(function(){
$('a').click(function(){
window.parent.$.prettyPhoto.open($(this).attr('src'), $(this).attr('title'), $(this).children('img').attr('alt'));
return false;
});
});
您可能需要将$('a')
选择器更改为其他内容。我不认为你应该在链接上加rel
,因为你可能会在父和iframe中打开漂亮的照片。
这应该都是理论上的。我还没有测试过。