Javascript 加载和更改iFrame';src&x27;从另一页

Javascript 加载和更改iFrame';src&x27;从另一页,javascript,jquery,css,iframe,src,Javascript,Jquery,Css,Iframe,Src,我有一个带有iFrame的页面和四个指向本机文件的链接,每个文件在调用时都正确显示在iFrame中。我已经用纯HTML完成了这项工作。问题是,当我最初登陆页面时,我有一个空的iFrame,直到我点击任何链接 在iFrame中填充到达时的第一个链接不仅是一件好事,而且如果有一种方法可以到达这个页面并显示任何其他剩余的链接,这将是一个真正的好处,如果事实上这是有人来寻找的内容的话。例如,如果我在另一个页面上放置我的四个链接的锚,如果有人可以选择第二个项目,并在到达my-iFrame-page.php

我有一个带有iFrame的页面和四个指向本机文件的链接,每个文件在调用时都正确显示在iFrame中。我已经用纯HTML完成了这项工作。问题是,当我最初登陆页面时,我有一个空的iFrame,直到我点击任何链接

在iFrame中填充到达时的第一个链接不仅是一件好事,而且如果有一种方法可以到达这个页面并显示任何其他剩余的链接,这将是一个真正的好处,如果事实上这是有人来寻找的内容的话。例如,如果我在另一个页面上放置我的四个链接的锚,如果有人可以选择第二个项目,并在到达my-iFrame-page.php时发现它填充了iFrame,那将是理想的

我不反对使用jQuery或任何类型的javascripting,但我担心对于一个脚本新手来说,理解语法是很重要的。如果有人能发布一个实现我所追求目标的工作示例,我会非常高兴。

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

例如,如果我在另一个页面上放置我的四个链接的锚,如果有人可以选择第二个项目,并在到达my-iFrame-page.php时发现它填充了iFrame,那将是理想的。 不用说,如果您有一个链接到包含iframe的页面的前一个页面,那么您可以将请求中作为参数选择的url传递到iframe页面,然后使用PHP将其解析为属性


为了简单起见,让我们假设您有两个页面:sourcepage.php和framepage.php。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>


使用JS获取URL参数,当然也可以向页脚中的链接添加参数。假设您的iframe具有id=“iframe”,那么就可以做到这一点:)


$(文档).ready(函数(){
函数get_url_param(名称){
名称=名称。替换(/[\[]/,“\\\[”)。替换(/[\]]/,“\\\]”);
var regexS=“[\\?&]”+name+“=([^&\\]*)”;
var regex=新的RegExp(regexS);
var results=regex.exec(window.location.href);
如果(结果==null){
返回“”;
}否则{
返回结果[1];
}
}
如果(获取url参数('show')=''){
$('#iframe').attr('src','wall structures.php');//设置默认页面。。。。
}否则{
$('iframe').attr('src',get_url\u param('show')+'php');
}
});




如果不想使用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>






您可以使用哪些服务器端技术?PHP。网?任何东西如果没有,那么JS很可能是你的答案。谢谢你的耐心。上面的javascript似乎只提供了访问者可能选择的四个页面中的一个。我如何使它适用于这四个脚本中的任何一个呢?我已经编辑了脚本,现在就可以这样工作了。现在javascript被用来监听class=“iframe link”中任何元素上的点击事件。因此,要在iframe中打开的任何链接,都可以指定类“iframe link”。如果您不希望使用jQuery来实现此目的,也可以直接编写(目标取决于iframe的id属性!)。我仍然不太清楚您的意思“例如,如果我将我的四个链接的锚点放在另一个页面上,如果有人能够选择第二个项目,并在到达my-iFrame-page.php时发现它正在填充iFrame,这将是非常理想的。“??我已经编写了四个链接,它们引用了调用iFrame的每个本机页面,如下所示:我想将链接放在站点的其他位置,并在任何特定的位置打开iFrame页面,不一定是在apples.php,这是当前发生的事情。仍然不确定iFrame的用途。如果希望相对于特定站点动态更改iframe src,则需要在URL中传递一个变量,然后使用$\u GET确定iframe的src。。。你有你的网站的例子吗?我该怎么做呢?例如,如果iFrame页面名为iFramePage.php,我在其中设置了iFrame src=“link1”,那么如何创建一个URL来访问iFramePage.php,其中link2出现在iFrame中(无需从我列出的锚中选择)?衷心感谢。您需要将URL作为GET或POST参数传递,或者至少作为URL的指示符传递。例如,有一个指向iFramePage.php?frame=2的链接,然后在iFramePage.php中使用switch case语句处理$_GET参数['frame'],其中值“2”映射到“link2”,插入到框架的src元素中。哦,伙计,听起来很棒。我只是不知道怎么写:“……在iFramePage.php中,使用switch case语句处理$_GET参数['frame'],其中值“2”映射到“link2”,该值插入到框架的src元素中。”到目前为止,我在没有任何javascript的情况下虚张声势地完成了这一过程。你可以用php编写它。您需要向接收页面指示您希望显示的链接,然后对框架的src=”“部分执行一个操作。如果我理解正确,则如果放置在另一个page.php上的链接将是:然后在iFramepage.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>