如何为所有页面设置框架

时间:2017-05-24 11:42:11

标签: php html

我正在创建一个网站框架。 要在此处获得更好的visit,它的页面为http://cocvidarbha.epizy.com/voting

现在我想访问http://cocvidarbha.epizy.com/voting/1.php。但该网址应仅被视为http://cocvidarbha.epizy.com/

我仅在http://cocvidarbha.epizy.com/

frame source中使用了index.php

4 个答案:

答案 0 :(得分:5)

这更像是客户端的答案。

选项1:

您可以做的是告诉浏览器将URL更改为您想要的其他内容(也可能是不存在的路径)。请注意,您将无法更改域名。

因此,在1.php文件中添加:

<script>
    window.history.pushState("{data: 'pass data'}", "PageTitle", "/url");
</script>

head标记内。

选项:2

我建议的另一种方法是使用Ajax。

您可以绑定所有<a href="/url">,这样当您单击它时,它会异步返回该URL上的数据,而无需重新加载页面。

因此,在主index.php文件中,添加:

<li>
  <a href="http://cocvidarbha.epizy.com/">Page 1</a>
</li>
<li>
  <a href="http://cocvidarbha.epizy.com/voting/1.php">Page 2</a>
</li>

<div id="content">
  Content will be loaded here without any page reload or URL change
</div>

然后在</body>之前,添加:

// Include jQuery
<script
  src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
  integrity="sha256-k2WSCIexGzOj3Euiig+TlR8gA0EmPjuc79OEeY5L45g="
  crossorigin="anonymous"></script>
<script>

$(document).ready(function(e) {

  // Bind click event to all "<a>" tags
  $(document).on('click', 'a', function(){
    var url = $(this).attr('href');
    // Do Ajax Call to "href" clicked
    $.ajax({
      url: url,
      type: "GET",
      success: function(data){
        $('#content').html(data);
      }
    })
    return false;
  });

});
</script>

答案 1 :(得分:3)

如果您只想要投票php或者只是部分索引页面,您可以随时将其嵌入索引页面。如果内容是动态的,这是一种解决方案,因为它避免了必须使用帧(HTML5中不支持)/ 301重定向/等。

您可以使用php include嵌入文件。嵌入文件将在索引页面上更新为服务器上的php文件。正如jagb在下面建议的那样,建议在包含文件时使用readfile;如果文件不存在,它将返回错误消息。

e.g:

@media (orientation: portrait) { 
    body, .reorientMessage{
        visibility: visible;
    }
    .mainContent{
        visibility: hidden ;
    }
}
@media (orientation: landscape) { 
    .reorientMessage{
        visibility: hidden;
    }
    body,.mainContent{
        visibility: visible ;
    }
}
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<div class="reorientMessage">please reorient etc..</div>
<div class="mainContent"><p>normal stuff here</p>
<br><br></div>
<?php include $_SERVER['DOCUMENT_ROOT'] . '/path/1.php';?>

</body>

</html>

[上面的html取自索引页面的源输出 - 1.php嵌入]

file_get_contents php函数将读取1.php文件的内容并将内容作为字符串返回。

您可以使用

以类似方式嵌入它
<?php
$1 = file_get_contents('./yourserverpath/1.php');
echo $1;
?>

其中$ 1是保存文件内容的变量(随后将它们吐出来!:)

所以你的最终索引页面代码如下所示:

@media (orientation: portrait) {
  body,
  .reorientMessage {
    visibility: visible;
  }
  .mainContent {
    visibility: hidden;
  }
}

@media (orientation: landscape) {
  .reorientMessage {
    visibility: hidden;
  }
  body,
  .mainContent {
    visibility: visible;
  }
}
<html>

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
</head>

<body>
  <div class="reorientMessage">please reorient etc..</div>
  <div class="mainContent">
    <p>normal stuff here</p>
    <br><br></div>

<?php
$1 = file_get_contents('http://cocvidarbha.epizy.com/voting/1.php'); 
//I'm putting in the url cos i don't know your path but use the suggested 
//method -  $1 = file_get_contents('./yourserverpath/1.php');
echo $1;
?>

</body>

</html>

答案 2 :(得分:2)

如果您需要从默认目标网页( index.php )执行重定向到所需页面( 1.php ),通过在index.php代码中添加以下行,

header("location:voting/1.php");
exit;

如果您只想使用框架标记而不对网址显示进行任何重定向,请将 src 属性值更改为 voting / 1.php

答案 3 :(得分:1)

尝试使用以下示例,我的网页中包含Link和Iframe。

<a id="myLInk" href="ClickMe.html" target="myIFrame"> Click Me </a>

此处target="myIFrame"会在ID为“myIFrame”的IFrame中打开链接。

这是我的Iframe。

<iframe name="myIFrame" src="index.html" align="top" height="500" width="95%" hspace="10" vspace="10" align="middle">
If you can see
this, your browser does not support iframes!
</iframe>

现在,当您点击带有“myLInk”的上述链接时,链接源(即ClickMe.html)将加载到iframe中。 通过这种方式,您可以加载尽可能多的链接,而无需导航到新页面。 这将保持网址不变。