【问题标题】:display jQuery prettyPhoto lightbox in parent window from iframe在 iframe 的父窗口中显示 jQuery prettyPhoto 灯箱
【发布时间】:2010-02-01 20:54:33
【问题描述】:

我知道这个问题之前已经讨论过,但我似乎无法让它发挥作用。我有一个带有 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>

感谢您提供的任何帮助。

【问题讨论】:

    标签: jquery iframe parent


    【解决方案1】:

    CalebD 的回答是正确的(请参阅帖子了解更多详情)。但是,为了能够访问 iFrame 父级中的 API,您必须在父级中添加以下初始化代码,以使其中任何一个工作

    $.fn.prettyPhoto({ social_tools: false });
    

    【讨论】:

      【解决方案2】:

      这只有在父框架和子框架的域相同时才有效。

      您需要在父框架中加载必要的 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 中打开漂亮的照片。

      理论上这一切都应该有效。我没有测试过。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多