js中用链接实现打开本地文件对话框
我知道可以使用<inputtype='file'>来实现,这个显示的是一个文本输入框和一个“浏览”按钮。我现在不想要显示这两个对象。我只想要一个链接(即点下“打开本地文件...
我知道可以使用<input type='file'>来实现,这个显示的是一个文本输入框和一个“浏览”按钮。我现在不想要显示这两个对象。我只想要一个链接(即点下“打开本地文件”链接,就会出现对话框)。 我的想法的代码如下:(请问在script中如何写?)
<script>
function showDia(){
}
</script>
<body>
<a href="#" onclick="showDia();">打开本地文件</a>
</body> 展开
<script>
function showDia(){
}
</script>
<body>
<a href="#" onclick="showDia();">打开本地文件</a>
</body> 展开
4个回答
展开全部
JS打开选择本地文件的对话框:
方法一:
在定义的form中添加以下javascript代码:
{
anchor : '95%',
xtype: 'fileuploadfield',
id: 'form-file',
emptyText: '请选择',
fieldLabel: '上传附件',
name: 'meetingAffix',
buttonText: 'Browse'
}
单击Browse按钮后可以打开对话框,选中文件后,所选文件路径会出现在上传附件后面的文本框中。
方法二:
在定义的form中添加以下javascript代码:
{
columnWidth :1,
layout :'form',
bodyStyle :'padding:10px',
defaultType :'textfield',
labelWidth :120,
width :1000,
buttonAlign :'center',
items : [ {
fieldLabel :'请选择要上传的文件',
name :'fileName',
id :'fileId',
anchor :'95%',
allowBlank :false,
inputType :'file'
} ]
}
方法三:
给按钮定义以下javascript函数:
var inputObj=document.createElement('input')
inputObj.setAttribute('id','_ef');
inputObj.setAttribute('type','file');
inputObj.setAttribute("style",'visibility:hidden');
document.body.appendChild(inputObj);
inputObj.click();
inputObj.value ;
单击已经添加函数的按钮会弹出选择本地文件的对话框。
推荐于2017-09-17 · 知道合伙人数码行家
关注
展开全部
/* 用如下代码把该函数应用到一个HTML文件中:
<script src="browseFolder.js"></script>
或把下面代码直接COPY到<script language="javascript">...</script>标签中;
用一般的触发函数均可在HTML文件中使用该函数
例如:<input type="button" onclick="BrowseFolder()" />
注意:请定义NAME为savePath的输入框接收或显示返回的值,例如:
<input type="text" name="savePath" />
特别注意的是,由于安全方面的问题,你还需要如下设置才能使本JS代码正确运行,
否者会出现"没有权限 "的问题.
1、设置可信任站点(例如本地的可以为:http://localhost )
2、其次:可信任站点安全级别自定义设置中:设置下面的选项
"对没有标记为安全的ActiveX控件进行初始化和脚本运行"----"启用 "
*/
function BrowseFolder(){
try{
var Message = "请选择文件夹"; //选择框提示信息
var Shell = new ActiveXObject( "Shell.Application" );
var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if(Folder != null){
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if(Folder.charAt(Folder.length-1) != "\\"){
Folder = Folder + "\\";
}
document.all.savePath.value=Folder;
return Folder;
}
}catch(e){
alert(e.message);
}
}
<script src="browseFolder.js"></script>
或把下面代码直接COPY到<script language="javascript">...</script>标签中;
用一般的触发函数均可在HTML文件中使用该函数
例如:<input type="button" onclick="BrowseFolder()" />
注意:请定义NAME为savePath的输入框接收或显示返回的值,例如:
<input type="text" name="savePath" />
特别注意的是,由于安全方面的问题,你还需要如下设置才能使本JS代码正确运行,
否者会出现"没有权限 "的问题.
1、设置可信任站点(例如本地的可以为:http://localhost )
2、其次:可信任站点安全级别自定义设置中:设置下面的选项
"对没有标记为安全的ActiveX控件进行初始化和脚本运行"----"启用 "
*/
function BrowseFolder(){
try{
var Message = "请选择文件夹"; //选择框提示信息
var Shell = new ActiveXObject( "Shell.Application" );
var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);//起始目录为:我的电脑
//var Folder = Shell.BrowseForFolder(0,Message,0); //起始目录为:桌面
if(Folder != null){
Folder = Folder.items(); // 返回 FolderItems 对象
Folder = Folder.item(); // 返回 Folderitem 对象
Folder = Folder.Path; // 返回路径
if(Folder.charAt(Folder.length-1) != "\\"){
Folder = Folder + "\\";
}
document.all.savePath.value=Folder;
return Folder;
}
}catch(e){
alert(e.message);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以这样实现:
<div style="position:relative;">
<a href="#" >打开本地文件</a>
<input type='file' style="opacity:0;filter:alpha(opactiy=0);position:absolute;top:0;left:0;width:200px;height:20px;cursor:pointer;">
</div>
<div style="position:relative;">
<a href="#" >打开本地文件</a>
<input type='file' style="opacity:0;filter:alpha(opactiy=0);position:absolute;top:0;left:0;width:200px;height:20px;cursor:pointer;">
</div>
追问
很不错,非常感谢,请问在这里怎么得到选择文件的路径呢?
追答
你获取<input type='file'..这个的value值即可
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
js做不了,涉及js对本地资源访问的限制。你可以试试了解通过js如何call windows api
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询