document.selection.createRange().htmlText可以获取到当前选中文本的HTML内容
document.selection.createRange().text可以获取到当前选中文本的内容
document.selection.createRange().pasteHTML(myValue); 可以在当前光标下追加内容
function getPath(obj) {
if(obj) {
if (window.navigator.userAgent.indexOf("MSIE")>=1) {
obj.select();
alert(document.selection.createRange().text);
return document.selection.createRange().text;
} else if(window.navigator.userAgent.indexOf("Firefox")>=1) {
if(obj.files) {
return obj.files.item(0).getAsDataURL();
}
return obj.value;
}
return obj.value;
}
}
以上代码在IE 6 7 8均正常使用,在IE9下,document.selection.createRange()拒绝访问,看来安全性有所提高。
最后测试发现,在IE9下,如果file控件获得焦点,则document.selection.createRange()拒绝访问,
因此,只需要在fileImg.select()后面加一句fileImg.blur()即可。
但是,如果当前页面被嵌在框架中,则fileImg.blur()之后,file控件中原本被选中的文本将会失去选中的状态,因此,不能使用fileImg.blur()。
可以让当前页面上的其他元素,如div,button等获得焦点即可,如div_view.focus()。
注意,如果是div,则要确保div有至少1像素的高和宽,方可获得焦点。
目前在IE9中测试,一切正常!