ThinkPHPコントローラーのJavaScriptコードが実行できない問題の解決策、thinkphpjavascript
この記事の例では、ThinkPHP コントローラーの JavaScript コードが実行できない問題の解決策について説明します。参考のためにみんなで共有してください。具体的な方法は以下の通りです
ここでは、コントローラー内の thinkphp の Web ページの特殊効果コードが実行できない問題の解決策の分析例を示します。例として、「システムの終了」リンクがフレーム内に書かれているとします。左、動的に生成された js を使用します。つまり、リンク内のターゲットを介して指定することはできません。
コードをコピーします コードは次のとおりです:
$this->assign('jumpurl',__url__.'/login');
$this->success("ログアウト成功! ");
このように書くと右フレームにジャンプ先のページが表示されてしまうので、URLにjsコードを書いてもうまくいかないので、この2行のコードをコメントアウトしました。直接使用:
コードをコピーします コードは次のとおりです:
echo "<script>window.top.location.href='$url';</script>";
これも機能しません。一方で、__app__ 定数は URL で使用できません。一方、実行の最終結果は <script> タグを削除し、残りは直接出力されます。 <br>
<div class="codetitle">
<span><u>コードをコピーします</u></span> コードは次のとおりです:</div>
<div class="code" id="code11957">(window.top.location.href='index/login';)</div>
<br>
アクションクラスの成功関数を確認しましたが、関連するパラメータは見つかりませんでした。
<p>そこでふと疑問に思ったのですが、tp内のタグは全て山括弧(<>)で囲まれていますが、コントローラー内で書いた<script>はタグとして解析されるのでしょうか?そこで、2 番目のコードを書き直しました: <br>
</p>
<div class="codetitle">
<span><u>コードをコピーします</u></span> コードは次のとおりです:</div>
<div class="code" id="code51478">echo '<literal><script>alert("Exit success");top.location.href="login";</script>< ;/リテラル> ';