js拒绝访问,代码如下

JavaScript021

js拒绝访问,代码如下,第1张

好像不能这样写。

第一个: display:none的元素是不会被提交的(好像是)

第二个:form1是form的id吧,应该是用标准写法document.getElementById('form1').submit(),后面的file.click()也是相同的道理。

第三个:submit()事件不会触发 submit 按钮的file.click()的。同时,点击submit按钮的时候表单就会提交,绑定在submit按钮上的事件是在表单提交后运行的,因此不会达到你预期的目的。

你试试看

<div style="display: none"><input type="file" id="file" onchange="document.getElementById('form1').submit()" name="excelFile"/></div>

   <input type="button" onclick="document.getElementById('file').click()"  value="浏览" />

其实就是浏览器的安全级别的问题,IE9就是 工具-弹出窗口阻止程序的选项

可以参看一下:http://zhidao.baidu.com/question/419121540.html?oldq=1

安全问题不能直接用js来操作file表单的

但可以用样式的方式修改file表单的外观

【file样式】

如果有用过163网盘上传文件,就知道那个file控件就像一个按钮,但功能确实是一个file控件。

但当自己尝试修改file控件的样式时,发现单单设置file控件的样式并不能实现想要的效果。

于是我想了另一个办法,用一个button来模拟,结果发现也不行,用js根本操作不了file控件,应该是考虑到安全问题吧。

最后是参考了163网盘和muxrwc模拟126附件添加的效果,总结了这个方法:

1.指定用一个容器(例如程序中的idFile)。

容器最好指定高和宽,并且overflow为hidden,不是块级元素的最好设display为block(为了高和宽的正确呈现);

2.在容器里放一个file控件,并设置样式,使能触发弹出选择文件框的部分覆盖整个容器,并设置成全透明。

容器指定准确的高和宽就是为了能通过file控件中不多的能设置的样式来覆盖整个容器;

3.现在已经把容器模拟成file控件了,可以直接设置容器的样式来模拟设置file控件的样式了。