在iFrame上打开链接 - PHP或JQuery

时间:2013-07-13 21:19:51

标签: php jquery iframe static

已经尝试了一天以上所以我现在要去我的最后一个地方,在这里张贴。我有一个包含以下代码的网站

的style.css

#nav li a.active {
    background: url('images/top-pages-button.png') 0 -80px;
}

#nav li ul li a:hover, #nav li ul li a.active {
    color: #6dff6d;
    font-weight: bold;
    text-decoration: none;
    background: url('images/pages-button.png') 0 -40px;
}

index.php Page

<ul id="nav">
<li><a href="#" title="Top Pages" class="active">Top Pages</a>
<ul>
    <li><a href="test.php" target="myframe" title="Page 1" class="active">Page 1</a></li>
    <li><a href="test2.php" target="myframe" title="Page 2">Page 2</a></li>
</ul>
</li>
</ul>

<iframe name="myframe" style="width: 100%; height: 100%; border: none; overflow: hidden;" src="default-page.php"></iframe>

test.php Page

Simple PHP file calling a page with some content/info/text.

上面的代码有效,有一个默认页面在网站加载时打开,当你点击链接时,它会正确打开iFrame上的页面。但是,我有以下需求。

  • 我想复制+粘贴一个链接,与我的朋友分享 在iframe上打开了DIRECT页面。所以我想这样做 通过电子邮件发送链接 http://www.mydomain.com/index.php?page=page1.php或类似的东西 而不是告诉他们访问mydomain.com然后点击 在热门页面下的第1页。

  • 此外,该网站除了“首页”之外还有多个类别,所以我 希望页面突出显示用户所在的位置,类别AND 链接打开了。因此,如果我按第1页,按类别和那个 链接为“活动”,然后当我转到页面2链接到 回到默认状态并且第2页处于活动状态等等 - 基于我的 样式表。

整个网站有三个部分。左侧导航,中间内容和右侧聊天。我需要聊天是静态的,这就是为什么我要尝试这样做。我希望能够向朋友或朋友发送直接打开该页面而不是网站的链接,并指示在类别和链接被标记为“活动”时单击X并根据需要进行更改并保持聊天div静止整个时间。

请告诉我是否可以使用JQUERY of PHP。非常感谢你!

1 个答案:

答案 0 :(得分:1)

index.php中,只需为$_GET['page']添加一些检查 - 如果这是您要使用的内容:

<li><a href="page1.php" target="myframe" title="Page 1" class="<?= ($_GET['page'] == 'page1.php') ? 'active' : ''; ?>">Page 1</a></li>
<li><a href="page2.php" target="myframe" title="Page 2" class="<?= ($_GET['page'] == 'page2.php') ? 'active' : ''; ?>">Page 2</a></li>

同样,对于iframe

<iframe name="myframe" style="width: 100%; height: 100%; border: none; overflow: hidden;" src="<?= $_GET['page']; ?>"></iframe>

请记住将所允许的页面列入白名单(否则iframe将加载任何内容):

if (isset($_GET['page'])) {
    if (in_array($_GET['page'], array('page1.php', 'page2.php')) === false) { // not whitelisted
        $_GET['page'] = 'default-page.php'; // revert to default
    }
}

else {
        $_GET['page'] = 'default-page.php'; // it isn't set
}

以上内容应位于页面顶部(或首次出现$_GET['page']之前)。