作者:w果乐园地盘BSp | 来源:互联网 | 2023-05-18 20:19
最近在用ThinkPHP开发一个网站。后台用的是框架,左框架里用outlookbar显示的导航,链接地址都写在一个js文件里。Codehighlightingproduced
最近在用ThinkPHP开发一个网站。
后台用的是框架,左框架里用outlookbar显示的导航,链接地址都写在一个js文件里。
outlookbar.additem(
'
基本信息修改
'
,t,
'
__APP__/Info/index
'
)
高高兴兴地完成了这些后,回过头来一点击:非法操作__APP__
想来想去,是因为在那个js文件里没有被TP进行“模板替换”。在群里把问题提出来,很快有很多网友热心帮助,其中牵风纸鸢的方法尤为独特,在这总结一下。
“把JS文件当做模板文件,通过TP路径去调用。”
在TP里提供了在模板文件中直接调用函数的快捷方法。U是其中之一。手册里有它的用法:
先把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来显示的,所以里面会生成这些信息。会不会是这个原因呢?
于是我就把调试给关了,一切正常了。