首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP头文件中处理特定于页面的JavaScript

问在PHP头文件中处理特定于页面的JavaScript
EN

Stack Overflow用户
提问于 2012-07-05 19:22:17
回答 5查看 2.9K关注 0票数 0

在用PHP设计网站时,通常会在站点的每个页面中包含一个header.php文件。header.php文件将包含<head>标记(除其他外)。但是,我经常发现我需要将特定于页面的JavaScript放在<head>标记中。

我过去处理这个问题的方法是将IF语句添加到我的头上,以确定应该输出哪些JavaScript片段(也就是说,如果这是主页,则输出主页所需的JavaScript,如果这是about页面,则输出about页面所需的JavaScript,等等)。

这可能是一种很糟糕的方法。标准的做法是什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-05 19:27:16

首先,<script>标记不需要位于标头中。将它们放在HTML文档中的任何地方都是完全有效的。

但是,如果您决定将它们包含在标头中,那么一个简单的解决方案是声明一个变量,标头应该回显其中包含您的脚本标记。例如:

代码语言:javascript
复制
<?php
$scripts = "<script src='script.js' type='text/javascript'></script>";
include("header.php");
?>

然后,您的header.php脚本将如下所示:

代码语言:javascript
复制
<html>
<head>
<!-- header stuff goes here -->
<?php /*echo out scripts */ echo $scripts; ?>
</head>
<body>
<!-- part of body goes here -->
票数 3
EN

Stack Overflow用户

发布于 2012-07-05 19:27:49

假设您实际上在每个文件中都包含了header.php,只需在包含header.php之前定义一个数组并向其中添加额外的脚本即可。然后在header.php中,让它检查该数组,并在必要时写出额外的脚本标记:

mypage.php:

代码语言:javascript
复制
$extra_scripts = array('jquery.js','jquery-ui.js');
include('header.php');
// Rest of your code.

header.php:

代码语言:javascript
复制
if (is_array($extra_scripts)) {
   foreach( $extra_scripts as $script ) {
         // Render a script tag
   }
}
票数 3
EN

Stack Overflow用户

发布于 2012-07-05 19:26:32

如果您使用像细枝这样的模板引擎,您可以继承一个基本模板,而不是包含一个页眉和一个页脚,并修改该基中定义的‘块’。

例如,基本模板可能包括一个内容块和一个header_javascript块,如下所示

代码语言:javascript
复制
{% block header_javascript %}
<script src='/js/jquery.js' type='text/javascript'></script>
{% endblock %}

然后,在子模板中,您可以覆盖这个块,调用{{ parent() }},然后添加附加的、特定于页面的脚本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11351131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档