javascript - 在特定包含的 php 文件中加载 js 文件
问题描述
我发现在 php 文件中加载 js 文件存在一些问题。我有文件 php admin-pp-sipp-litbang.php。在该文件中,我包含了一些带有switch case的 php 文件,如下所示:
<div class="col-sm-9 col-sm-offset-3 col-lg-10 col-lg-offset-2 main">
<?php
switch (@$_GET['modul']) {
case "beranda":
include "tampilan-admin-pp/beranda.php";
break;
case "permintaanakun":
include "tampilan-admin-pp/permintaanakun.php";
break;
case "permintaanpp":
include "tampilan-admin-pp/permintaanpp.php";
break;
case "chat":
include "tampilan-admin-pp/chat.php";
break;
case "detailsproposal":
include "tampilan-admin-pp/details_proposal.php";
break;
case "detailspermintaanakun":
include "tampilan-admin-pp/details_permintaanakun.php";
break;
case "detailspengguna":
include "tampilan-admin-pp/details_pengguna.php";
break;
default:
include "tampilan-admin-pp/beranda.php";
}
?>
</div><!--/.main-->
之后,我在 admin-pp-sipp-litbang.php 的 close body tag 附近加载 tampilan-admin-pp/chat.php 的 js 文件。这是js文件。
<script id="message-template" type="text/x-handlebars-template">
<li class="clearfix">
<div class="message-data align-right">
<span class="message-data-time" >{{time}}, Today</span>
<span class="message-data-name" >Olia</span> <i class="fa fa-circle me"></i>
</div>
<div class="message other-message float-right">
{{messageOutput}}
</div>
</li>
</script>
<script id="message-response-template" type="text/x-handlebars-template">
<li>
<div class="message-data">
<span class="message-data-name"><i class="fa fa-circle online"></i> Vincent</span>
<span class="message-data-time">{{time}}, Today</span>
</div>
<div class="message my-message">
{{response}}
</div>
</li>
</script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/list.js/1.1.1/list.min.js'></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/load_list_user_chat.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/UserOnline.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/index.js"></script>
问题是 tampilan-admin-pp/chat.php 的 js 文件会影响另一个包含的文件。如何仅为 tampilan-admin-pp/chat.php 加载该 js 文件?
解决方案
有什么理由不能将<script>
admin-pp-sipp-litbang.php 底部的标签移动到 tampilan-admin-pp/chat.php 中吗?
如果您需要将它们包含在 admin-pp-sipp-litbang.php 的末尾,那么您将需要在车把模板之后使用另一个 switch 语句或类似的逻辑。
更新:
问题是您的 php 文件有条件地包含在switch
语句中,但您的“聊天”javascript 文件每次都包含在内。您还需要有条件地包含 javascript 文件。您可以将<script>
标签添加到原始switch
语句中,但通常最好在</body>
结束标签之前加载 javascript,就像您所做的那样。为了保持这个特性,switch
在包含 js 文件之前,在 admin-pp-sipp-litbang.php 的底部添加另一个语句。
所以
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/list.js/1.1.1/list.min.js'></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/load_list_user_chat.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/UserOnline.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/index.js"></script>
变成:
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.0/handlebars.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/list.js/1.1.1/list.min.js'></script>
<?php switch($_GET['modul']):
case 'chat': ?>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/load_list_user_chat.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/UserOnline.js"></script>
<script type="text/javascript" src="tampilan-admin-pp/chat/jss/index.js"></script>
<?php break;?>
<?php endswitch;?>
这样,您可以在文件顶部添加case
与其他 s 匹配的其他语句,以有条件地包含它们的 javascript。include
推荐阅读
- erlang - 不同的 Erlang 进程可以有独立的工作目录吗?
- dynamics-crm - 如何在自定义 Common Data Service 实体中自动生成主名称字段?
- c# - Asp.net Web API | 文档上传异步等待或 Task.Run
- java - Android Camera API 2 不正确的相机特性
- javascript - Javascript - 将用户输入值与随机生成的值进行比较
- android - Firebase消息,后台的Android应用程序在单击消息后不会拦截推送通知
- android - 如何在 Android Oreo 中使用前台服务捕获图像
- oracle - 如何将base64编码的img src属性插入Oracle中的表中,然后在Oracle Apex的页面上显示
- android - Firebase 使用电子邮件和电话进行验证
- html - 如何在没有垂直滚动条的情况下使图像适合“首屏”