好的,我有第一页(索引),功能齐全并且工作正常,所有内容都加载到 iframe 中。但是,由于布局的设计,我希望我的作品集有更多空间供查看,因此我为作品集创建了另一个页面 (p.html)。现在,因为没有办法(据我所知或可能弄清楚)单击 p.html 上的链接并告诉它在名为“content”的 iframe 中打开例如 home.html#top。所以,我玩弄了一些 php 并想出了以下代码:
<?php
switch($_GET['go']) {
case 'home': $src='pages/home.html#top'; break;
case 'about': $src='pages/about.html#top'; break;
case 'contact': $src='pages/contact.html#top'; break;
default: $src='pages/home.html'; break;
} ?>
然后,在 index.php 上,在 iframe 中我有 <?=$src;?>
设置为源。
现在,当您第一次加载 http://www.djcproductions.net 时,一切正常,默认页面 home.html 按原样加载到 iframe 中。但是,单击导航栏中的任何链接,它会以某种方式使用我的 CSS 对内容进行分类。如果您在第一次访问该站点时注意并向下滚动到文本,您可以看到背景图像,因为 contentstyle.css 文件为 home.html 设置了透明背景。但是,一旦您单击任何链接,该链接就会跳出窗口并且背景不是透明的编辑,并且它似乎也将加载到内容 iframe 中的页面向右移动了大约 50 像素。因此,由于 php 代码中 home.html 的默认代码行正常工作,我认为这可能是 #top 搞砸了。所以,我从链接中删除了所有#top 标签,然后再次尝试。同样,在加载页面时没有问题,然后我单击一个链接,然后我的整个 index.php 页面加载到 iframe 中?!我的心被吹走了。我是不是做错了,或者这只是我遗漏的一条愚蠢的台词?
最佳答案
关于关于我们页面加载不出来的问题。这是我对该问题的总结。
如果我在浏览器地址栏中手动输入 http://www.djcproductions.net/index.php?go=about
,一切正常。这意味着只要您提供请求参数,您的 PHP switch 语句就可以使用。
当我查看您的链接时,它有一个目标属性:
<a class="about" target="content" href="index.php?go=about">...
这意味着它将整个页面加载到 iframe 中,我很确定这不是您想要做的。
如果您将超链接更改为:
<a class="about" href="index.php?go=about">...
它会起作用的。同样,如果您将其更改为:
<a class="about" target="content" href="pages/about.html">...
它会起作用。
只是不要同时使用目标和整页链接。
关于php 操作干扰 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080457/