php腳本輸出js代碼不執行的解決辦法和原理。


<?php
echo "<script>alert('我彈出來了')</script>";
?>

很簡單你一句話就可以在PHP里面輸出JS腳本讓瀏覽器執行。

今天碰到一個很詭異的問題,就是這段代碼在Chrom和firefox下至少單純的輸出字符串,沒有執行,沒有彈出alert。

原理:

MIME chrome對text/plain 不做解析的。php利用header可以輸出html ,瀏覽器用最后一次輸出header作為content-type

header('Content-Type:text/html;charset=utf-8');

在做圖片輸出,我用到了一個網上的類ThumbHandler.php,這個類的_output方法里有個輸出header改變了content-type;

結果導致alert不彈出,

 

text/plain html是不執行的。

只需要在alert前重新header即可。

if(!uploadFile())
{
    echo "<script>alert('上傳文件失敗')</script>";    
}
header('Content-Type:text/html;charset=utf-8');
echo ("<script type='text/javascript'>alert('保存成功');history.back();</script>");
//上傳圖片
function uploadFile()
{

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM