本文實例講述了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__這些常量,另一方面,最後執行出來的結果是竟是把<script>標簽去掉,剩下的直接輸出!
復制代碼 代碼如下:(window.top.location.href='index/login';)
我查了action類裡的success函數,沒有找到相關的參數。
後來突然想到一個問題,tp裡的標簽都是以尖括號(<>)來包含的,我在控制器裡寫的<script>是不是被當作標簽給解析了呢?於是我就重新寫了第二段代碼:
復制代碼 代碼如下:echo '<literal><script>alert("退出成功");top.location.href="login";</script></literal>';
這樣就行了。
希望本文所述對大家的ThinkPHP框架程序設計有所幫助。