-1

我正在使用我自己构建的自定义 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 吗?非常感谢专家的建议!

干杯

4

5 回答 5

2

我通常通过在脚本的每一页上创建一个数组来注入页脚来处理这种情况:

创建帐户.php

<?php
$scripts = array('foo.js', 'bar.js');

include('header.php'); ?>

<!-- page specific content -->

<?php include('footer.php'); ?>

登录.php

<?php
$scripts = array('http://example.com/baz.js');

include('header.php'); ?>

<!-- page specific content -->

<?php include('footer.php'); ?>

页脚.php

<!-- whatever your footer content is -->

<?php
// script injection
foreach ($scripts as $url) { ?>
  <script src="<?=$url?>"></script>
<?php } ?>
</body>
</html>

这将允许您根据需要在每个页面上包含尽可能多或少的脚本。

通常我有一个 php 文件,它会首先包含在所有页面上,以处理数据库连接、会话等,并包括$scripts = array()那里的初始化;那么默认情况下,每个页面都将$scripts初始化为一个空数组,因此如果需要使用它,则只需要在页面本身上进行设置。

于 2013-03-12T04:28:30.740 回答
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>";
      }

    ?>

如果有很多动态脚本,您也可以使用开关

于 2013-03-12T04:19:08.893 回答
0

也许$script在您的页面中创建一个存储脚本的 var ...然后在您的页脚中执行if($script) echo $script;

于 2013-03-12T04:16:43.670 回答
0

如果您的脚本仅用于该页面,则没有理由不能<script>在包含页脚之前添加标签:

<script type="text/javascript">
// your code here
</script>
<?php include('footer.php'); ?>

在脚本被评估时,您需要在脚本中引用的任何元素都已经添加到 DOM 中。

于 2013-03-12T04:23:45.780 回答
0

我认为,为不同的页面使用不同的 js 文件不会是一个明智的选择。

由于浏览器会在下载后缓存 js 文件。

但是,您可以对特定页面使用内联 js。

保留要包含的 page_id 和 js 代码的哈希(php 中的数组)

在您footer.php的标签之前</body>,内联打印与该 page_id 链接的 js 代码。

例如

$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在这种情况下你不需要任何东西。

于 2013-03-12T04:27:18.203 回答