thinkphp教程在控制器裡的網頁特效代碼不能執行解決方法
就拿“退出”這一項來說吧。
我的“退出系統”鏈接是寫到左邊的框架裡的,用js動態生成的。也就是說,沒法通過鏈接裡的target來指定。
view sourceprint?1 $this->assign('jumpurl',__url__.'/login');<br>$this->success("注銷成功!");<br>
這樣寫的話,要跳轉的頁面就顯示在了右框架裡了。
把js代碼寫到url裡面不行。
我把這兩行代碼注釋掉了。直接用
view sourceprint?1 echo "<script>window.top.location.href='$url';</script>";
這樣也不行,一方面url裡面沒法用__app__這些常量。另一方面,最後執行出來的結果是竟是把<script>標簽去掉,剩下的直接輸出!(window.top.location.href='index/login';)
我查了action類裡的success函數,沒有找到相關的參數。
星期天在朋友那吃飯的時候,突然想到一個問題,tp裡的標簽都是以尖括號(<>)來包含的,我在控制器裡寫的<script>是不是被當作標簽給解析了呢?於是我就重新寫了第二段代碼:
view sourceprint?1 echo '<literal><script>alert("退出成功");top.location.href="login";</script></literal>';
這樣就行了。