<script src="<?php echo site_url('bootstrapper/jqTimer'); ?>"></script>
所以我尝试使用上面的脚本调用下面的控制器,但是我找不到错误。关于为什么这种方法不起作用的任何想法?
function jqTimer() {
$this->load->view("jquery.timers.js");
}
答案 0 :(得分:2)
使用<script>
标记加载javascript时,src
属性需要文件名到js文件。您在CI安装中为它提供了控制器方法的路径。
您需要做的是将jquery.timers.js
文件放在public_html
文件夹中并从那里访问它:
// assuming you have the script in a [javascripts] folder inside [public_html]
<script src="<?php echo site_url('javascripts/jquery.timers.js'); ?>"></script>
如果您希望通过视图加载JavaScript,则需要执行此操作:
<script><?php echo $this->load->view("jquery.timers.js", "", TRUE); ?></script>
这将回显嵌入式javascript的<script>
标签之间的视图文件的内容。 (传递TRUE
作为第三个参数返回文件的内容,因此您可以将其回显)
答案 1 :(得分:0)
我没有看到为什么你应该在控制器中创建一个只是为了加载一个javascript文件的原因。
base_url()
功能已经可以做你想要的了。
<script src="<?php echo base_url('path/to/jquery.timer.js'); ?>"></script>
的文档
答案 2 :(得分:0)
你正在寻找回应js的链接,而不是回应js本身。 您可以在扩展CI_Controller的核心文件夹中创建一个MY_Controller,其中包括:
function jqTimer() {
return site_url("jquery.timers.js");
}
然后,在任何其他控制器(扩展MY_controller)中,你会去:
$data['js_timer'] = $this->jqTimer();
/* proceed to load main view with $data */
查看:
<script src="<?php echo $js_timer; ?>"></script>
这是干的,如果您决定使用不同的js计时器插件,则只需要在一个地方替换它:MY_Controller类(与每个视图文件相对)。
仍然是一种奇怪的做事方式......