首页 >后端开发 >php教程 >ThinkPHP控制器里javascript代码不能执行的解决方法

ThinkPHP控制器里javascript代码不能执行的解决方法

不言
不言原创
2018-06-06 15:01:452525浏览

这篇文章主要介绍了ThinkPHP控制器里javascript代码不能执行的解决方法,采用ThinkPHP的242ea1024ad38c613404ea04d9256314标签来解决javascript标签被解析的问题,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了ThinkPHP控制器里javascript代码不能执行的解决方法。分享给大家供大家参考。具体方法如下:

这里实例分析一下thinkphp在控制器里的网页特效代码不能执行解决方法,就拿“退出”这一项来说吧,我的“退出系统”链接是写到左边的框架里的,用js动态生成的。也就是说,没法通过链接里的target来指定。

复制代码 代码如下:

$this->assign(&#39;jumpurl&#39;,__url__.&#39;/login&#39;);<br>$this->success("注销成功!");

这样写的话,要跳转的页面就显示在了右框架里了,把js代码写到url里面不行,我把这两行代码注释掉了。直接用:

复制代码 代码如下:

echo "<script>window.top.location.href=&#39;$url&#39;;</script>";

这样也不行,一方面url里面没法用__app__这些常量,另一方面,最后执行出来的结果是竟是把3f1c4e4b6b16bbbd69b2ee476dc4f83a标签去掉,剩下的直接输出!

复制代码 代码如下:

(window.top.location.href=&#39;index/login&#39;;)

我查了action类里的success函数,没有找到相关的参数。

后来突然想到一个问题,tp里的标签都是以尖括号(a8093152e673feb7aba1828c43532094)来包含的,我在控制器里写的3f1c4e4b6b16bbbd69b2ee476dc4f83a是不是被当作标签给解析了呢?于是我就重新写了第二段代码:

复制代码 代码如下:

echo &#39;<literal><script>alert("退出成功");top.location.href="login";</script></literal>&#39;;

这样就行了。

相关推荐:

Thinkphp通过一个入口文件如何区分移动端和PC端

ThinkPHP控制器间实现相互调用的方法

以上是ThinkPHP控制器里javascript代码不能执行的解决方法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn