最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IE6,IE7下js動態(tài)加載圖片不顯示錯誤

 更新時間:2010年07月17日 18:52:58   作者:  
ie6,7下js動態(tài)加載圖片不顯示錯誤,碰到這類問題的朋友可以參考下。
先描述一下出現(xiàn)這種匪夷所思bug的背景:
我在頁面加載的時候加載一堆小縮略圖,<a href="javascript:void(0);" onclick="switch_image('1.jpg')"><img src="1.thumb.jpg" /></a>
這么多小的縮略圖標簽循環(huán)平鋪下來,當單擊小的圖片時,動態(tài)加載大的圖片顯示,就類似于淘寶的商品查看圖片。頁面上有一個標簽:
<div id="pic-box"><img src="" id="big-image" /></div>
為了節(jié)省流量,加快頁面載入速度,先不加載大圖,當用戶單擊小圖時,動態(tài)加載一張大圖顯示。
復制代碼 代碼如下:

<script>
function switch_image(im)
{
document.getElementById('big-image').src=im;
}
</script>

這種方式在IE6,7外所有的瀏覽器工作都正常,比如 IE8,Firefox, Opera, chrome, Safari。。。
就是IE6,7這兩個瀏覽器加載不了,單擊小圖的時候,有時候你能加載,有時候加載一半,有時候不能加載。
我以為問題出在src這個東西上面,有可能IE6,7修改src不能正確加載圖片,于是嘗試把切換函數(shù)修改為:
document.getElementById('pic-box').innerHTML='<img src="' + im + '" />';
IE6,7還是不行,于是想,有可能是圖片被緩存了,那么加上隨機數(shù):
document.getElementById('pic-box').innerHTML='<img src="' + im + '?r=' + Math.random() + '" />';
IE6,7依然不行。。
于是在想,可能是img用在innerHTML里面出現(xiàn)的問題,所以,改成用 appendChild
var img = document.createElement('img');
img.src= im;
document.getElementById('pic-box').appendChild(img);
還是不行。
再修改成用 new image來:

var img = new Image();
img.src= im;
document.getElementById('pic-box').appendChild(img);
還是不行。
百思不得其解,想,難道IE6,7不能動態(tài)加載圖片嗎?難道是img標簽的問題?
既然這樣就換成背景圖加載吧,于是
document.getElementById('pic-box').style.background="url(" + im + ")";
IE6,7依然不行,上面這么多方法除IE6,7外其他都是正常的。
只有不停的Google,結果google到了:
IE6,7只有在用<a onclick="switch_image()" href="javascript:void(0);"></a>這樣
動態(tài)加載圖片是才會出現(xiàn)這種情況,google到的一篇說明:

有幾個吃飽了沒事兒干的老外反復試驗發(fā)現(xiàn)這個問題是ie6中一個底層機制的bug,之后的版本已經(jīng)解決了。
據(jù)說<a href="javascript:void(0)">或者<a href=#">這樣使用a標簽的話并不能阻止a標簽最后觸發(fā)一個什么行為,
導致ie6會錯誤的認為頁面刷新或者重定向了,并且中斷了當前所有連接,這樣新圖片的加載就被aborted了。
當然這些吃飽了沒事兒干的老外們也提出了各種匪夷所思復雜無比的解決方案。

最簡單的方法有兩個,一個是這樣使用a標簽<a href="switch_image(); return false;">,另外一個就是用div替換a標簽來用。

實際上我發(fā)現(xiàn)不僅是IE6,IE7也同樣有這個bug,還有,采用:<a href="switch_image(); return false;">并不能解決問題。

所以推薦用其他標簽替換a標簽,最后一怒之下把所有的a標簽替換為span,從此就再也沒出現(xiàn)這樣的問題了。

相關文章

  • JavaScript手寫源碼之omit函數(shù)的實現(xiàn)

    JavaScript手寫源碼之omit函數(shù)的實現(xiàn)

    最近突然有個新的想法,想去看看前端的小庫來提升自己的編碼能力。但是又不知道怎么去證明自己是否真的看懂了,那就實現(xiàn)一個omit函數(shù)吧
    2023-02-02
  • 一文詳解JavaScript中的'BigInt'用法

    一文詳解JavaScript中的'BigInt'用法

    BigInt是ES2020中引入的新的原始數(shù)據(jù)類型。它允許程序員使用更大的整數(shù)值,以匹配需要處理的數(shù)據(jù)集。在這篇博客中,我們將探討B(tài)igInt的用法和它與其他相似方法的區(qū)別,感興趣的可以了解一下
    2023-04-04
  • js 判斷一個數(shù)字是不是2的n次方冪的實例

    js 判斷一個數(shù)字是不是2的n次方冪的實例

    下面小編就為大家分享一篇js 判斷一個數(shù)字是不是2的n次方冪的實例,具有很好的參考價值,希望對大家有所幫助
    2017-11-11
  • js中promise如何取到[[PromiseResult]]問題

    js中promise如何取到[[PromiseResult]]問題

    這篇文章主要介紹了js中promise如何取到[[PromiseResult]]問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 幾個常用的JavaScript字符串處理函數(shù) - split()、join()、substring()和indexOf()

    幾個常用的JavaScript字符串處理函數(shù) - split()、join()、substring()和indexOf(

    幾個常用的JavaScript字符串處理函數(shù) split()、join()、substring()和indexOf()
    2009-06-06
  • js模擬實現(xiàn)煙花特效

    js模擬實現(xiàn)煙花特效

    這篇文章主要為大家詳細介紹了js模擬實現(xiàn)煙花特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • JavaScript中利用Array和Object實現(xiàn)Map的方法

    JavaScript中利用Array和Object實現(xiàn)Map的方法

    這篇文章主要介紹了JavaScript中利用Array和Object實現(xiàn)Map的方法,實例分析了javascript實現(xiàn)map的添加、獲取、移除、清空、遍歷等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 每天一篇javascript學習小結(基礎知識)

    每天一篇javascript學習小結(基礎知識)

    這篇文章主要介紹了javascript基本的知識點,包括字符串、特殊字符運算、變量轉字符串等,對javascript的基礎知識講解的很全面,為了更好地幫助大家學習javascript,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 自己封裝的一個原生JS拖動方法(推薦)

    自己封裝的一個原生JS拖動方法(推薦)

    下面小編就為大家?guī)硪黄约悍庋b的一個原生JS拖動方法(推薦)。小編覺得挺不錯的,希望對大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-11-11
  • js中數(shù)組的常用方法小結

    js中數(shù)組的常用方法小結

    這篇文章主要介紹了js中數(shù)組的常用方法,結合實例形式分析了js中的常用數(shù)組方法,如push、concat、pop、splice、reverse、join等功能與用法,需要的朋友可以參考下
    2016-12-12

最新評論

宜宾县| 苍溪县| 荣成市| 罗源县| 峨边| 杭锦旗| 兴国县| 罗源县| 饶平县| 通道| 松潘县| 巩义市| 梅河口市| 新兴县| 乾安县| 新郑市| 迁西县| 红原县| 北安市| 温州市| 衡东县| 伊通| 长武县| 三明市| 儋州市| 隆化县| 云和县| 中江县| 贵南县| 龙口市| 神木县| 霞浦县| 宁安市| 长丰县| 台湾省| 伊吾县| 额尔古纳市| 金秀| 黄陵县| 文成县| 南陵县|