用javascript打开文本选择对话框

homejiji 2009-09-04 09:40:06
怎么样只点击一个图标,立刻打开一个文本选择对话框,就像input的file 那样?
要求用javascript,另外这个方法还要同时适应 firefox和ie,而且客户端不需要注册任何插件或者com组件
请各位高手帮忙!感激不尽
...全文
335 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lonelyriver 2009-09-11
  • 打赏
  • 举报
回复
^
YHL27 2009-09-11
  • 打赏
  • 举报
回复
学习!!
ms_X0828 2009-09-11
  • 打赏
  • 举报
回复
用到javascript中的click()函数
以及css样式的属性:display

下面为html标签:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function show(){
file=document.getElementById("myfile");
file.style.display="block";
}
</script>
</head>

<body>
<a href="javascript:show();" >上传</a>
<input type="file" id="myfile" style="display:none" />

</body>
</html>

wzwen 2009-09-10
  • 打赏
  • 举报
回复
恭喜试验成功...
homejiji 2009-09-10
  • 打赏
  • 举报
回复
再顶一下,周六结贴
phnessu4 2009-09-04
  • 打赏
  • 举报
回复
这个地方有篇文章,专门关于file表单的click事件

http://applefans.cn/?action=show&id=16
程序猿之殇 2009-09-04
  • 打赏
  • 举报
回复
<div id="fup" style="float:left; width:60">
<span id="f1" style="position:absolute;padding-top:3; cursor:hand;font-family:宋体"><a href="##">add</a></span>
<span id="f2" onmouseover="this.scrollLeft=100" style="position:absolute;width:60;overflow:hidden;filter:alpha(opacity=0);opacity:0;-moz-opacity:0"></span>
</div>
<script language='javascript'>
var upform = document.createElement('input');
upform.type = 'file';
upform.name = 'upload[]';
upform.size = 1;
document.getElementById('f2').appendChild(upform);
</script>

这是网上找一高手的代码,呵呵,发出来.
foolbirdflyfirst 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jakey9826 的回复:]
引用 6 楼 foolbirdflyfirst 的回复:
ie可以,ff不行,ff认为file框的点击是必须手动去点的.

是呀,没办法只能做个透明的file,然后将图像定位到file上了.
[/Quote]
貌似ff下也只有这个办法了
程序猿之殇 2009-09-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 foolbirdflyfirst 的回复:]
ie可以,ff不行,ff认为file框的点击是必须手动去点的.
[/Quote]
是呀,没办法只能做个透明的file,然后将图像定位到file上了.
foolbirdflyfirst 2009-09-04
  • 打赏
  • 举报
回复
ie可以,ff不行,ff认为file框的点击是必须手动去点的.
程序猿之殇 2009-09-04
  • 打赏
  • 举报
回复
click事件的确有局限性.
dzxccsu 2009-09-04
  • 打赏
  • 举报
回复

<a href="javascript:upload();" >上传
<img src="img.jpgg" alt="" /></a>
<input type="hidden" name="tryfile" id="tryfile" />
<input type="file" name="upLoadFileTry" style="display:none;" id="upLoadFileTry"/>


function upload()
{
document.getElementById("tryfile").click();
document.getElementById("tryfile").value=document.getElementById("upLoadFileTry").value;

}
dzxccsu 2009-09-04
  • 打赏
  • 举报
回复
直接用type="file"这样的不行吗?
homejiji 2009-09-04
  • 打赏
  • 举报
回复
obj.click();
好像在ff中不能使用。。。
程序猿之殇 2009-09-04
  • 打赏
  • 举报
回复
不知道你打开以后要如何处理了,
不过可以让系统点击一个隐藏的file表单来实现.

<html>
<head>
<script type="text/javascript">
function openFileSelect()
{
var obj = document.getElementById('test');
obj.click();
}
</script>
</head>
<body>
<img src='xxx.gif' onclick='openFileSelect();'/>
<input type='file' name='tttt' value='' id='test' style='display:none'>
</body>
</html>
homejiji 2009-09-04
  • 打赏
  • 举报
回复
看来用透明后覆盖的方法应该可以,我去试验一下
现在最麻烦的是我是要做成插件放到WYSIWYG编辑器里面去,而且打开门本对话框,点击ok后就要将文件上传
就像163邮箱的附件添加一样!
不知道这方法可不可行。。。

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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