IE下的模拟点击与onchange事件问题

sapherise 2013-04-07 12:22:16
楼主做了两个页面,
一个是a.php

<input type="button" onClick="$('#up').click();" value="上传照片">
<form action="b.php" method="post" enctype="multipart/form-data" target="uploadIframe" id="form1" style="display:none">
<input type="file" name="up" id="up" onchange="$('#sub').click(); ">
<input type="submit" name='sub' id="sub">
</form>
<iframe name="uploadIframe" id="uploadIframe" style="display:none"></iframe>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

一个是b.php

<script>alert('1')</script>


结果在IE下无法alert,在其他浏览器下都可以。
请问是什么问题导致的……非常感谢。。
...全文
379 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2013-04-07
  • 打赏
  • 举报
回复
试试这样
<form action="b.php" method="post" enctype="multipart/form-data" target="uploadIframe" id="form1">
    <input type="file" name="up" id="up" onchange="this.parentNode.submit()" style="border: 1px solid red;border:1px solid red;position: absolute;filter: alpha(opacity=0);opacity: 0;width: 100px">
    <input type="button" value="上传照片">
</form>
<iframe name="uploadIframe" id="uploadIframe" style="display:none"></iframe>
sapherise 2013-04-07
  • 打赏
  • 举报
回复
感谢,确实是安全的问题。 楼上和楼上上的思路是对的……
functionsub 2013-04-07
  • 打赏
  • 举报
回复
file控件因为一些安全问题,不能再做模拟触发点击了 建议用CSS把file控件的透明度设为0,覆盖在上传照片要点击的按钮上,这样看起来是点击了那个按钮,其实点击的是透明度为0的file控件。
MakeUrChois 2013-04-07
  • 打赏
  • 举报
回复
这是IE对OnChange这个方法的支持与其他浏览器不同。 IE的OnChange,不是修改之后触发,而是控件离开焦点的时候触发。 与其他浏览器的修改之后立马调用OnChange不一样。这地方IE略有坑爹。 所以很多情况下避免使用OnChange
wpf1523 2013-04-07
  • 打赏
  • 举报
回复
b.php改成这样的试试?
<script>parent.alert('1')</script>

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧