Html 标记文件上载按钮
如何国际化文件选择器的按钮文本?例如,此代码向用户呈现的内容:Html 标记文件上载按钮,html,internationalization,dialog,Html,Internationalization,Dialog,如何国际化文件选择器的按钮文本?例如,此代码向用户呈现的内容: <input type="file" .../> 您可以为按钮获取浏览器语言。无法通过编程方式更改它。它通常由浏览器提供,很难更改,因此唯一的解决方法是CSS/JavaScript攻击 有关某些方法,请参见以下链接: 我可以使用带有以下代码的jQueryMobile实现一个按钮: <label for="ppt" data-role="button" data-inline="true" data-m
<input type="file" .../>
您可以为按钮获取浏览器语言。无法通过编程方式更改它。它通常由浏览器提供,很难更改,因此唯一的解决方法是CSS/JavaScript攻击
有关某些方法,请参见以下链接:
<label for="ppt" data-role="button" data-inline="true" data-mini="true" data-corners="false">Upload</label>
<input id="ppt" type="file" name="ppt" multiple data-role="button" data-inline="true" data-mini="true" data-corners="false" style="opacity: 0;"/>
上传
上面的代码创建了一个“上传”按钮(自定义文本)。点击上传按钮,启动文件浏览。使用Chrome 25和IE9进行测试。要制作自定义“浏览按钮”解决方案,只需制作一个隐藏的浏览按钮、自定义按钮或元素以及一些Jquery即可。这样我就不会修改实际的“浏览按钮”,它取决于每个浏览器/版本。这是一个
HTML:
JS:
退后一步!首先,你假设用户在他们的设备上使用了一个外来语言环境,这不是一个合理的假设来证明接管文件选择器的按钮文本,并让它说出你想要它说的内容 您希望控制页面上可见的每一种语言是合理的。不过,文件上载控件的内容不是HTML的一部分。此控件后面有更多内容,例如,在WebKit中,按钮旁边还显示“未选择任何文件” 有一些非常老套的变通方法试图做到这一点(如@ChristopheD的回答中提到的方法),但没有一种方法真正成功:
- 对于屏幕阅读器,文件控件仍然会显示“浏览…”或“选择文件”,并且自定义文件上载不会被宣布为文件上载控件,而只是一个按钮或文本输入
- 它们中的许多无法显示所选文件,或者无法显示用户已不再选择文件
- 它们中的许多看起来一点也不像本机控件,因此在非标准设备上可能看起来很奇怪
- 键盘支持通常很差
- 作者创建的UI组件永远不会像其本机等效组件那样功能齐全(而且,在Windows 7上,您越接近于假设IE10,它就越偏离其他浏览器和操作系统组合)
- 现代浏览器支持拖放到本机文件上载控件中
- 一些技术可能会触发安全软件中的试探法,作为一种潜在的“点击劫持”企图欺骗用户上传文件
.inputfile{
/*可见性:隐藏等不起作用*/
宽度:0.1px;
高度:0.1px;
不透明度:0;
溢出:隐藏;
位置:绝对位置;
z指数:-1;
}
.inputfile:焦点+标签{
/*键盘导航*/
轮廓:1个点#000;
外形:-webkit聚焦环颜色自动5px;
}
.inputfile+标签*{
指针事件:无;
}
选择一个文件(单击我)
使用它要容易得多
<input type="button" id="loadFileXml" value="Custom Button Name"onclick="document.getElementById('file').click();" />
<input type="file" style="display:none;" id="file" name="file"/>
我喜欢你的答案,因为这意味着我不必做任何事情=),但你下面的解决方案看起来会奏效的(看起来是这样的!)使用JavaScript可以做到这一点,但要小心,这对禁用JS的用户不起作用,最终会导致不同的布局。最重要的是,你会首先看到一个布局(典型的按钮),在一个小的延迟后,通过JS的改变,“你下面的解决方案”,当我看到它的时候;Seb是最后一个答案:)请注意,浏览器可能会触发点击劫持警告(目前在FF+NoScript和IE9,IIRC中),因为这是相同的技术方法。这是这里问题的唯一正确答案。在不提醒用户这一事实的情况下,重新设置文件输入元素的样式相对简单。
#import {
margin: 0em 0em 0em .2em;
content: 'Import Settings';
display: inline-block;
border: 1px solid;
border-color: #ddd #bbb #999;
border-radius: 3px;
padding: 5px 8px;
outline: none;
white-space: nowrap;
-webkit-user-select: none;
cursor: pointer;
font-weight: 700;
font: bold 12px/1.2 Arial,sans-serif !important;
/* fallback */
background-color: #f9f9f9;
/* Safari 4-5, Chrome 1-9 */
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#C2C1C1), to(#2F2727));
}
.hideMe{
display: none;
}
$("#import").click(function() {
$("#browser").trigger("click");
$('#browser').change(function() {
alert($("#browser").val());
});
});
<input type="button" id="loadFileXml" value="Custom Button Name"onclick="document.getElementById('file').click();" />
<input type="file" style="display:none;" id="file" name="file"/>