在用PHP设计网站时,通常会在站点的每个页面中包含一个header.php文件。header.php文件将包含<head>标记(除其他外)。但是,我经常发现我需要将特定于页面的JavaScript放在<head>标记中。
我过去处理这个问题的方法是将IF语句添加到我的头上,以确定应该输出哪些JavaScript片段(也就是说,如果这是主页,则输出主页所需的JavaScript,如果这是about页面,则输出about页面所需的JavaScript,等等)。
这可能是一种很糟糕的方法。标准的做法是什么?
发布于 2012-07-05 19:27:16
首先,<script>标记不需要位于标头中。将它们放在HTML文档中的任何地方都是完全有效的。
但是,如果您决定将它们包含在标头中,那么一个简单的解决方案是声明一个变量,标头应该回显其中包含您的脚本标记。例如:
<?php
$scripts = "<script src='script.js' type='text/javascript'></script>";
include("header.php");
?>然后,您的header.php脚本将如下所示:
<html>
<head>
<!-- header stuff goes here -->
<?php /*echo out scripts */ echo $scripts; ?>
</head>
<body>
<!-- part of body goes here -->发布于 2012-07-05 19:27:49
假设您实际上在每个文件中都包含了header.php,只需在包含header.php之前定义一个数组并向其中添加额外的脚本即可。然后在header.php中,让它检查该数组,并在必要时写出额外的脚本标记:
mypage.php:
$extra_scripts = array('jquery.js','jquery-ui.js');
include('header.php');
// Rest of your code.header.php:
if (is_array($extra_scripts)) {
foreach( $extra_scripts as $script ) {
// Render a script tag
}
}发布于 2012-07-05 19:26:32
如果您使用像细枝这样的模板引擎,您可以继承一个基本模板,而不是包含一个页眉和一个页脚,并修改该基中定义的‘块’。
例如,基本模板可能包括一个内容块和一个header_javascript块,如下所示
{% block header_javascript %}
<script src='/js/jquery.js' type='text/javascript'></script>
{% endblock %}然后,在子模板中,您可以覆盖这个块,调用{{ parent() }},然后添加附加的、特定于页面的脚本。
https://stackoverflow.com/questions/11351131
复制相似问题