2

已经尝试了一天多,所以我现在要采取最后的手段,在这里发帖。我有一个包含以下代码的网站

样式.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 页面

<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 页面

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 页。

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

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

请让我知道这是否可以使用 PHP 的 JQUERY。非常感谢!

4

1 回答 1

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']首次出现之前)。

于 2013-07-13T21:28:42.680 回答