本地存储将值发送到iframe中的文件

时间:2018-10-26 19:13:22

标签: javascript iframe local-storage

文件1中包含以下脚本:

docker run some-image

上面的脚本打开以下div / iframe(也在文件1中):

    $(document).ready(function () {
    $("#buttonClass").click(function() {
        getValueUsingClass();
    });
    });

function getValueUsingClass(){

    var chkArray = [];

    $(".chk:checked").each(function() {
        chkArray.push($(this).val());
    });

    var selected;
    selected = chkArray.join(',') ;

        localStorage.setItem("imgid",selected);

        var varmodal = document.getElementById('myinfomodal');
        var span = document.getElementsByClassName('infoclose')[0];

        varmodal.style.display = "block";

        span.onclick = function() {
        varmodal.style.display = "none";
    }

}

应该将变量 选定 通过localStorage传输到第二个文件。第二个文件中的脚本是:

<div id="myinfomodal" class="infomodal">
    <div class="infomodal-content">
    <button class="infoclose">Close</button>
    <iframe id="frameid" src="https://outzeal.com/zp2.php" width="100%" height="500px;" style="border:none;"></iframe>
    </div>
    </div>

请点击此链接(不再可用)进行演示。单击图像后,图像将以模式div打开。选中复选框并单击“购物车图标”会打开div和iframe文件,但不会显示变量 selected 的值(可能是因为该函数应该运行在window.onload发生之后,而这从未发生过)。如果单独打开第二个文件(此处发生window.onload),则显示该值。我想要模式div中的 selected 值。那怎么办?谢谢。

1 个答案:

答案 0 :(得分:0)

您的代码没有错,这只是一个缓存问题:我在本地复制了您的代码,当然使用zp2.html而不是zp2.php(我没有PHP服务器)看起来效果很好:我同时选择了“未选择图像”和“滑雪/ 001”,相反,在遥控器上我什么都没看到(我认为是因为zp2.p的先前行为。

尝试编辑zp2.php并使用匿名导航,或禁用浏览器上的缓存。

PS:无论如何,如果在按下按钮后更改复选框的值,则iframe将显示第一个值,因为您正在zp2.php上使用window.onload ... 如果需要弹出窗口,不需要使用iframe和其他服务器页面,也不需要使用localweb,就可以使用全局javascript变量。