热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ThinkPHP里用U方法调用js文件

最近在用ThinkPHP开发一个网站。后台用的是框架,左框架里用outlookbar显示的导航,链接地址都写在一个js文件里。Codehighlightingproduced

最近在用ThinkPHP开发一个网站。

后台用的是框架,左框架里用outlookbar显示的导航,链接地址都写在一个js文件里。

  
  
outlookbar.additem( ' 基本信息修改 ' ,t, ' __APP__/Info/index ' )

高高兴兴地完成了这些后,回过头来一点击:非法操作__APP__

想来想去,是因为在那个js文件里没有被TP进行“模板替换”。在群里把问题提出来,很快有很多网友热心帮助,其中牵风纸鸢的方法尤为独特,在这总结一下。

“把JS文件当做模板文件,通过TP路径去调用。”

在TP里提供了在模板文件中直接调用函数的快捷方法。U是其中之一。手册里有它的用法:

{:U('User/insert' )} 

先把js文件的后缀改成html(这个不会影响),然后写个JsAction,在里面进行调用:

  
  
php
class JsAction extends Action{
function nav() {
$this -> display( ' Index:js:nav ' );
}
}
?>

最后,把左框架里的JS链接改一下:

  
  
< script type ="text/Javascript" src ="{:U('Js/nav')}" > script >

还不行!这是怎么回事呢?

用firebug看一下,nav.html里面的文件都调入进去了——说明前面做的工作都实现了。这就要开始调试JS文件了。

照例写进去一下alert,没有执行,把里面的其它内容全删了,还是没有执行,这时用firebug查看源代码的时候发现里面并不只有一句alert,还有runtime信息和trace信息——我在做网站的时候默认开了APP_DEBUG,而这个JS文件是通过TP来显示的,所以里面会生成这些信息。会不会是这个原因呢?

于是我就把调试给关了,一切正常了。


推荐阅读
author-avatar
w果乐园地盘BSp
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有