全部代码太多了,用ext写的,模拟个吧主页面
<!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=utf-8" />
<title>无标题文档</title>
</head><body>
<iframe frameborder='0' style='width:100%;height:100%;' src="a.html"> </iframe>
</body>
</html>
a.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=utf-8" />
<title>无标题文档</title>
</head><body>
<input type="file" id="file">
<input type="button" onclick="getUrl()">
</body>
</html>
<script type="text/javascript">
function getUrl()
{
var obj = document.getElementById("file");
obj.select();
obj.blur();
var path = document.selection.createRange().text;
alert(path);
}
</script>
<!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=utf-8" />
<title>无标题文档</title>
</head><body>
<iframe frameborder='0' style='width:100%;height:100%;' src="a.html"> </iframe>
</body>
</html>
a.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=utf-8" />
<title>无标题文档</title>
</head><body>
<input type="file" id="file">
<input type="button" onclick="getUrl()">
</body>
</html>
<script type="text/javascript">
function getUrl()
{
var obj = document.getElementById("file");
obj.select();
obj.blur();
var path = document.selection.createRange().text;
alert(path);
}
</script>
<!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 runat="server">
<title>WebForm1</title>
</head>
<body>
<form id="form1" runat="server">
<div id="divbody">
<iframe src="WebForm2.aspx" id="ifram1" frameborder="0" ></iframe>
</div>
</form>
</body>
</html>------------------------------------------------------------
WebForm2<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebForm2.aspx.cs" Inherits="WebForm2" %>
<!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 runat="server">
<title>WebForm2</title>
<script src="Scripts/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="divlayer">
<input type="file" id="file1" />
</div>
</form>
<script>
var file = document.getElementById("file1");
file.onchange = function () {
file.select();
var path = document.selection.createRange().text;
alert(path);
}
</script>
</body>
</html>
多谢啦,这问题昨天困扰一天啦。。哈哈
要好好了解浏览器机制和JavaScript原理才行啊
挂到iis上就不行了,本地的还可以
没有obj.blur() ie9会提示错误
有obj.blur() 获取到的还是空值.....
纠结了
最后只能在iframe外面获取文件路径,然后再传入ifram里了。就是file控件放到了iframe外面了,里面确实没办法,也许我不回。cpokij说的方法没试过
cpokij的方式实际上意义不大,因为fileImg.blur()和你使其他元素获得焦点并无区别,其他元素聚焦后,fileImg也就失去焦点了。并且你的前提是没有使用iframe的情况下。
即使使用了iframe,使用fileImg.blur()是正常的,并不会出现拒绝访问。
我的情况有点不是很乐观,因为我不能像楼主一样将file放到父页,我只能控制子页。我再研究研究吧。
function getPath(obj) {
if (obj) {
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
obj.select();
//obj.blur();在本页可以,但如果是IFrame的页面,就只能用 window.parent.focus();
window.parent.focus();
return document.selection.createRange().text || obj.value;
}
else {
return obj.value;
}
}
}
function getUrl()
{
var obj = document.getElementById("file");
obj.select();
window.top.document.body.focus();
var path = document.selection.createRange().text;
alert(path);
}
</script>
不管有多少层iframe都有效
var fileUpl = document.getElementById('filImport');
fileUpl.select();
fileUpl.blur();
//window.parent.document.body.focus();
var path = document.selection.createRange().text;
path的值为空
// obj.blur();
window.top.document.body.focus();
//IE下取得图片的本地路径
var s = document.selection;
alert(s.createRange().text);
return document.selection.createRange().text;
还是为空!我这个一共包含了两个iframe,是孙级页面