這篇文章主要介紹了ThinkPHP控制器裡javascript程式碼不能執行的解決方法,採用ThinkPHP的242ea1024ad38c613404ea04d9256314標籤來解決javascript標籤被解析的問題,是非常實用的技巧,需要的朋友可以參考下
本文實例講述了ThinkPHP控制器裡javascript程式碼不能執行的解決方法。分享給大家供大家參考。具體方法如下:
這裡實例分析一下thinkphp在控制器裡的網頁特效程式碼不能執行解決方法,就拿「退出」這一項來說吧,我的「退出系統」連結是寫到左邊的框架裡的,用js動態產生的。也就是說,沒辦法透過連結裡的target來指定。
複製程式碼 程式碼如下:
$this->assign('jumpurl',__url__.'/login');<br>$this->success("注销成功!");
這樣寫的話,要跳轉的頁面就顯示在了右框架裡了,把js程式碼寫到url裡面不行,我把這兩行程式碼註解掉了。直接用:
複製程式碼 程式碼如下:
echo "<script>window.top.location.href='$url';</script>";
這樣也不行,一方面url裡面沒法用__app__這些常數,另一方面,最後執行出來的結果是竟是把3f1c4e4b6b16bbbd69b2ee476dc4f83a標籤去掉,剩下的直接輸出!
複製程式碼 程式碼如下:
(window.top.location.href='index/login';)
我查了action類別裡的success函數,沒有找到相關的參數。
後來突然想到一個問題,tp裡的標籤都是以尖括號(a8093152e673feb7aba1828c43532094)來包含的,我在控制器裡寫的3f1c4e4b6b16bbbd69b2ee476dc4f83a是不是被當作標籤給解析了呢?於是我就重新寫了第二段程式碼:
複製程式碼 程式碼如下:
echo '<literal><script>alert("退出成功");top.location.href="login";</script></literal>';
這樣就行了。
相關推薦:
#
以上是ThinkPHP控制器裡javascript程式碼不能執行的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!