自定义浏览按钮

时间:2011-10-09 11:26:13

标签: javascript html ajax file-upload

有没有办法打开文件对话框上传文件,点击按钮或图片,或链接..

例如:

<a href="" onclick="openDialogBox('fileID')....." /> Select File To Upload</a>
<input type="file" id="fileID" />

我需要最简单的例子,它适用于所有浏览器。我想使用纯javascript或ajax。

2 个答案:

答案 0 :(得分:2)

是的,AJAX是不可能的。代码将是:

<a href="#" onclick="document.getElementById('fileID').click(); return false;" /> Select File To Upload</a>

它可能不适用于某些浏览器,我写的quick test在Chrome 15(测试版),IE9和Firefox 6上运行良好,所以我想这涵盖了大多数现代浏览器。

答案 1 :(得分:2)

这就是我处理HTML&amp; amp; CSS

(我认为没有必要通过调用任何javascript):

<style>
    span.browse_but { font-family:Arial; width:65px; height:20px; text-align:center; line-height:18px; margin:0px; font-size:10px; font-weight:bold;
                        border:1px solid #ccc; float:left; cursor:pointer; padding:0px; background:#eee; display:block; float:left; overflow:hidden; }
    span.browse_but font { font-size:16px; color:#c00; }
    span.browse_but input { position:absolute; cursor:pointer; right:0px; top:0px; height:20px; width:195px; margin:0px; opacity:0; filter:alpha(opacity=0); }
</style>

<span style="position:relative;" class="browse_but">
    <font style="font-weight:bold; color:#093; position:relative; top:2px; font-size:17px;">+</font> Pick a file
    <input name="F" type="file" value=""/>
</span>

请参阅此处的小提琴:Deal with ugly browse button

策略是在一个容器中使用opacity = 0和position:absolute进行文件输入,其位置为:relative。因此,输入对用户是不可见的,但是当他们单击容器时,输入点击事件将按预期触发。

您可以采取哪些措施来满足自己的需求:

  • 将您想要的图像插入容器和放大器中。正确定位;
  • 更改文件输入的大小&amp;容器以适应图像;
祝你好运!