从另一个页面加载和更改iFrame的'src'

时间:2012-11-16 19:21:31

标签: javascript jquery css iframe src

我有一个包含iFrame的页面和四个指向本机文件的链接,这些链接在召唤时均在iFrame中正确显示。我用直接的HTML做了这个。问题是,当我最初登陆页面时,我有一个空的iFrame,直到我点击任何链接。

在抵达后让iFrame填充第一个链接不仅是件好事,而且如果有办法到达此页面并且其他任何其他链接出现,这将是一个真正的奖励,如果事实上这是某人寻找的内容。例如,如果我将四个链接的锚点放在另一个页面上,那么如果有人可以选择第二个项目并在到达my-iFrame-page.php时找到它填充iFrame,那将是理想的。

我并不反对使用jQuery或任何类型的javascripting,但我担心对于脚本新手来说,理解语法非常重要。如果有人能发布一个可以实现我所追求的工作榜样的话,我就会登上月球。

2 个答案:

答案 0 :(得分:0)

您可以为iframe设置src=""属性,该属性将设置默认页面。

例如,如果我将四个链接的锚点放在另一个页面上,那么如果有人可以选择第二个项目并在到达my-iFrame-page.php时找到它填充iFrame,那将是理想的。

毋庸置疑,如果您有一个链接到包含iframe的页面的前一页,您可以将选择中作为参数的URL传递给iframe页面,然后使用PHP将其解析为该属性。


为简单起见,让我们假设你有两个页面:sourcepage.php和framepage.php。 sourcepage.php包含一个带有四个单选按钮的表单以及一个提交到framepage.php的提交按钮。单选按钮都是同一组的一部分,有四个值 - 根据您的评论“苹果”,“香蕉”,“樱桃”和“桃子”。苹果电台的价值为1,香蕉2等等。每个收音机的名称都是“页面”。

这意味着当您提交表单时,在sourcepage.php上需要以下代码

<?php
    $pageIndex = $_GET["page"];
    $pageUrl = "";

    switch ($pageIndex)
    {
        case "1":
            $pageUrl = "apples.html";
            break;
        case "2":
            $pageUrl = "bananas.html";
            break;
        // And so on...
    }
?>

<!-- And then later... -->

<iframe src="<?php echo $pageUrl; ?>"></iframe>

答案 1 :(得分:0)

使用JS获取URL参数,并在当前为页脚中的链接添加参数。假设你的iframe有id =“iframe”,这就是诀窍:)

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script>
    $(document).ready(function() {

        function get_url_param(name) {
            name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
            var regexS = "[\\?&]" + name + "=([^&#]*)";
            var regex = new RegExp(regexS);
            var results = regex.exec(window.location.href);
            if (results == null) {
                return "";
            } else {
                return results[1];
            }
        }

        if (get_url_param('show') == '') {
            $('#iframe').attr('src', 'wall-structures.php'); // Setting your default page....
        } else {
            $('#iframe').attr('src', get_url_param('show') + '.php');
        }

    });
</script>
</head>
<body>

    <a href="portfolio.php?show=wall-structures">Wall & Structures</a><br />
    <a href="portfolio.php?show=ovens-barbecues">Ovens & Barbecures</a><br />
    <a href="portfolio.php?show=pillars-arches">Pillars & Arches</a><br />
    <a href="portfolio.php?show=stairs-retaining-walls">Stairs & Retaining Walls</a><br />

    <iframe id="iframe"></iframe>

</body>
</html>

如果你不想使用JS,它也可以在纯PHP中完成:

<?php

    if (isset($_GET['show'])) {
        $iframe_src = $_GET['show'] . '.php';
    } else {
        $iframe_src = 'somedefaultpage.php';
    }

?>


<a href="portfolio.php?show=wall-structures">Wall & Structures</a><br />
<a href="portfolio.php?show=ovens-barbecues">Ovens & Barbecures</a><br />
<a href="portfolio.php?show=pillars-arches">Pillars & Arches</a><br />
<a href="portfolio.php?show=stairs-retaining-walls">Stairs & Retaining Walls</a><br />

<iframe src="<?php echo $iframe_src; ?>"></iframe>