我使用自己构建的自定义mvc框架。我想问一下如何动态地将javascript文件包含在我的页面底部?
创建帐户页面(createaccount.php)
<?php include('header.php'); ?>
<div class="container maincontainer">
<h3>Create an Account </h3>
<?php include('footer.php'); ?>
我的标签位于footer.php。
我有另一个名为
的页面登录页面(login.php)
<?php include('header.php'); ?>
<div class="container maincontainer">
<h3>Login </h3>
<?php include('footer.php'); ?>
基本上,这2页使用不同的javascript文件。我想为不同的页面包含不同的js。注意:他们使用相同的footer.php文件
是否有任何函数/方法可以根据特定页面动态地将js代码注入footer.php?专家的建议非常赞赏!
干杯
答案 0 :(得分:2)
我通常通过在每个脚本页面上创建一个数组来处理这种情况,以便注入页脚:
createaccount.php
<?php
$scripts = array('foo.js', 'bar.js');
include('header.php'); ?>
<!-- page specific content -->
<?php include('footer.php'); ?>
的login.php
<?php
$scripts = array('http://example.com/baz.js');
include('header.php'); ?>
<!-- page specific content -->
<?php include('footer.php'); ?>
footer.php
<!-- whatever your footer content is -->
<?php
// script injection
foreach ($scripts as $url) { ?>
<script src="<?=$url?>"></script>
<?php } ?>
</body>
</html>
这将允许您根据需要在每个页面上包含尽可能多的脚本。
通常我有一个php文件,它将首先包含在所有页面中以处理数据库连接,会话等,并包括$scripts = array()
的初始化;然后默认情况下每个页面都会$scripts
初始化为一个空数组,因此只有在需要使用它时才需要在页面上设置它。
答案 1 :(得分:1)
您可以尝试在footer.php中添加以下内容
<?php
$path = $_SERVER['PHP_SELF'];
$file_info = pathinfo($path);
$file_name = $file_info['file_name'];
if($file_name == 'createaccount.php'){
echo "<script src = 'your_script.js'></script>";
}else if($file_name == 'login.php'){
echo "<script src = 'another_script.js'></script>";
}
?>
如果有很多动态脚本,您也可以使用开关
答案 2 :(得分:0)
也许在您的页面中创建一个存储脚本的$script
var ...然后在您的页脚中执行if($script) echo $script;
答案 3 :(得分:0)
如果您的脚本仅用于该页面,那么您没有理由不能在包含页脚之前添加<script>
标记:
<script type="text/javascript">
// your code here
</script>
<?php include('footer.php'); ?>
在编写脚本时,您需要在脚本中引用的任何元素都已添加到DOM中。
答案 4 :(得分:0)
我认为,对不同的页面使用不同的js文件不是明智的选择。
浏览器在下载后缓存js文件。
但是,您可以对特定页面使用内联j。
保持page_id和js代码的哈希(php中的数组)
在footer.php
中,在</body>
标记之前,内联打印与该page_id链接的js代码。
e.g。
$scripts = array('page1' => 'page1 js code', 'page2' => 'page2 js code');
和footer.php
之前的</body>
,
`echo '<script type="text/javascript">';
echo $scripts['page1'];
echo '</script>';
在这种情况下,您不需要任何if/else
。