Javascript 用PHP构建网页
我一直在通过包含Javascript 用PHP构建网页,javascript,php,html,Javascript,Php,Html,我一直在通过包含pageStart.html和pageEnd.html文件来构建我的页面,然后在这两个文件之间继续我的业务 pageStart.html <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet/less" type="text/css" href="css/style.less"/>
pageStart.html
和pageEnd.html
文件来构建我的页面,然后在这两个文件之间继续我的业务
pageStart.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="css/style.less"/>
<script src="js/less.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
</body>
</html>
pageEnd.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="css/style.less"/>
<script src="js/less.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
</body>
</html>
这意味着我不必记住全部内容,只要把它们包括进去就行了
我现在的问题是,我希望某些页面加载某些JS脚本,但我已经关闭了
标题,因此无法(正确地)声明新脚本。做这件事的更好方法是什么?这是个好主意吗?我是否应该手动将文件内容放入PHP文件中,然后添加任何额外需要的脚本?首先,一个好的web标准是在页脚中包含js
文件。这是因为页面的html/css
将更快地完成并显示页面,因此用户可以获得有关页面呈现的一些反馈
如果您知道js
只会在页面上使用,那么在页面末尾添加一个新的
标记并没有什么错。包含在2页或更多页上可能会保证脚本包含在页脚中
您还可以延迟加载html标题中的js
:,在希望脚本显示的位置添加占位符:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="css/style.less"/>
<script src="js/less.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
{zScriptPlaceHolder}
</head>
<body>
这样,您的脚本就会出现在标题中,有时我会使用这样的结构:
class Layout
{
public function Header($js = "")
{
?><!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="css/style.less"/>
<script src="js/less.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
if (strlen($js) > 0)
{
?>
<script><?php echo $js; ?></script>
<?php
}
?>
</head>
<body>
}
function __destruct()
{
?>
</body>
</html><?php
}
}
$layout = new Layout();
include "classes/layout.php";
$js = "alert('My inline JavaScript code');";
$layout->Header($js);
结束标记将自动添加到脚本末尾。但是您可以对它执行类似于页眉()
的操作,比如Footer()
。你们都可以创建一个像addScript(“js/some jquery plugin.js”)
这样的方法,将该值添加到数组中,并在Header()方法中打印出来
此结构提供了许多可能性。如果您想将脚本保存在pageStart.html
中,请将其更改为pageStart.php
,然后执行以下操作:
pageStart.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="css/style.less"/>
<script src="js/less.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<?php
if(isset($add_js) && is_array($add_js) && count($add_js) > 0){
foreach($add_js as $k=>$v){
echo '<script src="'.$v.'"></script>';
}
}
?>
</head>
<body>
$add_js = array();
$add_js = 'pathTocustomscript1.js';
$add_js = 'pathTocustomscript2.js';
$add_js = 'pathTocustomscript3.js';
include('pageStart.php');
// go about your body business here
<?php
if(isset($add_js) && is_array($add_js) && count($add_js) > 0){
foreach($add_js as $k=>$v){
echo '<script src="'.$v.'"></script>';
}
}
?>
</body>
</html>
include('pageStart.php');
// go about your body business here
$add_js = array();
$add_js = 'pathTocustomscript1.js';
$add_js = 'pathTocustomscript2.js';
$add_js = 'pathTocustomscript3.js';
include('pageEnd.php');
如果你想把它放在你的
pageEnd.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="css/style.less"/>
<script src="js/less.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<?php
if(isset($add_js) && is_array($add_js) && count($add_js) > 0){
foreach($add_js as $k=>$v){
echo '<script src="'.$v.'"></script>';
}
}
?>
</head>
<body>
$add_js = array();
$add_js = 'pathTocustomscript1.js';
$add_js = 'pathTocustomscript2.js';
$add_js = 'pathTocustomscript3.js';
include('pageStart.php');
// go about your body business here
<?php
if(isset($add_js) && is_array($add_js) && count($add_js) > 0){
foreach($add_js as $k=>$v){
echo '<script src="'.$v.'"></script>';
}
}
?>
</body>
</html>
include('pageStart.php');
// go about your body business here
$add_js = array();
$add_js = 'pathTocustomscript1.js';
$add_js = 'pathTocustomscript2.js';
$add_js = 'pathTocustomscript3.js';
include('pageEnd.php');
就我个人而言,我使用一个html文件来包括,因此,根据您的示例:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet/less" type="text/css" href="css/style.less"/>
<script src="js/less.js" type="text/javascript"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>(%otherscripts%)
</head>
<body>(%documentbody%)
</body>
</html>
有谁有更好的办法快速替换内容吗
最好的,
zimpee从pagestart中删除结束标头标记,并将其添加到您正在处理的页面中。当您需要脚本时,请将其包含在结束头标记之前。最好在head标签之间包含脚本。css属于head
(官方…),但脚本几乎可以放在任何地方。是否有任何特定原因需要它们出现在标题中
?您也可以在标题标记后包含JS脚本。@jeroen我认为将它们包含在标题中是一种很好的做法。“一些/某些”JS脚本可以包含在
之外,但不是全部@Dutchie432---至少,从我过去的经验来看。谷歌搜索模型视图控制器我将把这个标记为答案,虽然其他答案回答了我的确切问题,但这个答案纠正了我的无知,从而以更好的方式解决了我的问题。我喜欢这个解决方案,我试图实现类似的东西,但很快就被弄糊涂了。@Lerp对不起,但我不明白你的意思。你说的模糊是什么意思?模糊和不可读。我的尝试与上述类似,而不是你的解决方案:)@Lerp我明白了。嗯,当我在做我的一个项目时,我第一次用它,我喜欢它。不管怎样,祝你好运。