<?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()
{

php脚本输出js代码不执行的解决办法和原理。的更多相关文章

  1. 2015.2.16 关于delphi web控件打开新网页时弹出关闭页面(js代码)出错的解决办法研究

    参考网址1:http://www.csharpwin.com/csharpspace/2360.shtml...参考网址2:http://www.oschina.net/question/234345 ...

  2. 使用unittest,if __name__ == '__main__':里代码不执行的解决办法

    参考:https://www.cnblogs.com/hanmk/p/8656574.html

  3. php课程 1-3 web项目中php、html、js代码的执行顺序是怎样的(详解)

    php课程 1-3 web项目中php.html.js代码的执行顺序是怎样的(详解) 一.总结 一句话总结:b/s结构 总是先执行服务器端的先.js是客户端脚本 ,是最后执行的.所以肯定是php先执行 ...

  4. js代码的执行顺序及运算

    代码执行顺序:从上往下,一行一行的执行(也叫一个模块一个模块的执行) 变量的提升(它不是变量的功能,而是浏览器的功能) js代码如何执行? js代码执行前,浏览器会给他一个全局的环境 叫window, ...

  5. 输出JS代码中的变量内容

    一. 输出JS代码中的变量内容 1. 可以直接以提示框的形式输出 alert("输出的内容"); 2. 可以输出到网页的某个位置 a. 在显示输出的位置放一个标签 <a id ...

  6. eclipse中的js文件报错的解决办法

    在使用别人的项目的时候,导入到eclipse中发现js文件报错,解决办法是关闭eclipse的js校验功能. 三个步骤: 1. 右键点击项目->properties->Validation ...

  7. tomcat输出servlet-api.jar - jar not loaded 解决办法

    tomcat输出servlet-api.jar - jar not loaded 解决办法 启动tomcat后,控制台输出信息:WEB-INF/lib/servlet-api.jar not load ...

  8. MyEclipse的JQuery.min.js报错红叉解决办法

    MyEclipse的JQuery.min.js报错红叉解决办法 1.选中报错的jquery文件"jquery-1.2.6.min.js".2.右键选择 MyEclipse--> ...

  9. Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法

    Android ROM开发(二)--ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法 怪自己二了,写好的不小心弄没了,现在只好重新写一些了,上篇简单的配置了一下环境, ...

随机推荐

  1. bzoj1202: [HNOI2005]狡猾的商人 floyd

    刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了n个月以来的收入情况,其中第i 个月的收入额为Ai(i=1,2,3...n-1,n), .当 Ai大于0时表示这个月盈 ...

  2. 这里面盲点很多,构造函数的调用问题,还有vptr指针的++问题(已解决)

    #include<iostream> //实现vptr指针初始化问题 using namespace std; class Father { public: Father (int f) ...

  3. 让CLOVER默认引导WINDOWS

    解决问题帖子: http://www.insanelymac.com/forum/topic/296000-force-clover-to-always-choose-win-81-efi-as-de ...

  4. hdu-4417-主席树+离线

    Super Mario Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. ~递归递归(FBI树--蓝桥)

    1220: FBI树 [递归] 时间限制: 1 Sec 内存限制: 128 MB 提交: 5 解决: 4 状态 题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串 ...

  6. [Spring Boot] 使用多个Servlet

    当使用Spring boot的嵌入式servlet容器时,可以通过Spring bean或扫描Servlet组件的方式注册Servlet.Filter和Servlet规范的所有监听器(例如HttpSe ...

  7. ElasticSearch-hadoop saveToEs源码分析

    ElasticSearch-hadoop saveToEs源码分析: 类的调用路径关系为: EsSpark -> EsRDDWriter -> RestService -> Rest ...

  8. 桥接、nat、host-only

  9. 最新版本Firefox表单css兼容性

    场景描述: 为了在各浏览器上传控件保持统一的风格,用隐藏“浏览控件”的方式,在最新版本的Firefox下隐藏的“浏览”按钮漂移了. 问题分析: HTML代码: <form class=" ...

  10. net负载均衡服务器架构网址

    https://blog.csdn.net/orichisonic/article/details/71122291 https://blog.csdn.net/huangxiangec/articl ...