1 var obj = upfile.value 2 obj.select(); 3 var imgSrc = document.selection.createRange().text; 4 var localImagId = document.getElementById("localImag"); //必須設置初始大小 5 try{ //IE濾鏡 6 localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; 7 localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc; 8 } catch(e) { 9 alert("您上傳的圖片格式不正確,請從新選擇!"); 10 return false; 11 }
低版本瀏覽器報錯,顯示var imgSrc = document.selection.createRange().text; 這一行有錯誤。控制檯顯示錯誤爲:SCRIPT5:拒絕訪問。兩個解決方案,分別爲客戶端和服務端出路方案。跨域
工具 -> Internet選項 -> 安全 -> Internet區域 -> 該區域的安全級別滑塊滑到最低
添加信任站點方法:瀏覽器
工具 -> Internet選項 -> 安全 -> 受信任站點區域 -> 站點 -> 輸入網址,點擊添加按鈕
在IE9下,若是file控件得到焦點,則document.selection.createRange()拒絕訪問。
1 var obj = upfile.value 2 obj.select(); 3 obj.blur(); //使file控件失去焦點 4 var imgSrc = document.selection.createRange().text;
方案2:使其餘DOM元素得到焦點安全
1 var obj = upfile.value 2 obj.select(); 3 OtherDOM.focus(); // 使其餘元素得到焦點 4 var imgSrc = document.selection.createRange().text;
上述兩個方案,方案2適用性較好。緣由來自網絡,本人還沒有驗證。網絡
由於當網頁中存在iframe框架時,會致使跨域的問題,導致obj.blur()報錯。