【问题标题】:Setting global variable across fancebox iframe [duplicate]跨fancebox iframe设置全局变量[重复]
【发布时间】:2014-06-02 04:15:23
【问题描述】:

我有一个网页,我正在调用 fancybox 插件 iframe 来显示另一个页面。我已使用此页面上传图像。现在,我想在fancybox关闭后将图像路径传回父页面。

我想在父页面上设置一个全局变量,然后在fancybox iframe中设置该变量的值(到上传的图像路径)。然后在父页面上我放置了afterClose() 用于fancybox 以读取该变量的值。这行得通吗?如果没有,我还能尝试什么?

父文件代码:

var globalImageURL = "";
$('.fancybox').fancybox({
        maxWidth    : 800,
        maxHeight   : 600,
        fitToView   : false,
        width       : '70%',
        height      : '70%',
        autoSize    : false,
        closeClick  : false,
        openEffect  : 'none',
        closeEffect : 'none',

        afterClose: function(){
            alert(globalImageURL);
        }
    });

iFrame 代码:

<?php
if(strlen($photo_exists)>0){

    echo "<script>globalImageURL = 'imagepath';</script>";
}
?>

谢谢。

【问题讨论】:

  • 亲爱的代码在哪里?
  • 为什么在你提问之前不尝试一下?如果它有效,那么您就不需要问其他问题了,您可以询问如何解决您的问题?
  • @AustinNguyễn:我已经尝试过了,但没有成功。在我在这里问之前,我也有尝试的感觉。顺便说一句,这个地方的存在是为了解决问题。所以,稍微缓和一下你的态度。这将非常有帮助。
  • 好吧,如果你试图通过 iframe 获取全局变量,我认为你应该为图像路径设置 cookie 并在 iframe 关闭时获取该 cookie

标签: javascript php jquery fancybox-2


【解决方案1】:

首先,父级和 iframe 的 document.domain 必须相同,iframe 才能访问父级变量。

其次,代码应如下所示:-

<?php
if(strlen($photo_exists)>0){

    echo "<script>if(top.globalImageURL) top.globalImaeUIrl='imagepath';</script>";
}
?>

【讨论】:

  • 试过但没用 :(
  • 还要检查花式框中的返回函数以在警报中使用 top.globalImageURL 而不是 globalImageURL 以防止页面上的 js 错误。
猜你喜欢
  • 2014-06-22
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 2022-01-28
  • 1970-01-01
  • 2019-07-18
相关资源
最近更新 更多