首頁 >後端開發 >php教程 >ThinkPHP控制器裡javascript程式碼不能執行的解決方法

ThinkPHP控制器裡javascript程式碼不能執行的解決方法

不言
不言原創
2018-06-06 15:01:452526瀏覽

這篇文章主要介紹了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