2011-08-22 67 views
0

我有一個網站使用javascript將圖像大小調整爲最大寬度/高度。我使用JavaScript而不是CSS來做到這一點,所以它與舊版瀏覽器向後兼容。我的問題是,在Chrome中,似乎並不是一直在調整圖像大小。有時在第一次訪問頁面時,圖像不會調整大小,重新加載和隨後的訪問都會調整大小。Javascript沒有在預期時發射

http://justinzaun.com/Tree/people/@[email protected]對於示例頁面,但實際上網站上的任何人員頁面都可以顯示相同的問題。我試圖在$(window).load()和$(documnet).ready()中調整大小,這發生在familytree.js文件中。

的用戶名/密碼是admin /密碼

+0

@David - 我提供了用戶名和密碼 – Justin808

回答

0

你把這個代碼:

$(this).find("img").load(function() { resize($(this)); }); 

如果圖像已加載哪些什麼都不做。

使用這個代替:

var $img = $(this).find("img"); 
$img.load(function() { resize($(this)); }); 
// If image is already loaded then it will have a height 
if($img.height()) 
    resize($img); 

,將調用調整負荷,但如果圖像已被加載,它會調用反正調整。

+0

這個作品,謝謝! – Justin808

0

這可能是WebKit bug 45586,您的代碼不知道圖像的大小。通常,beforeload處理程序正在通過Adblock或Adblock Plus等擴展進行註冊。

0

您正在偵聽window.onload觸發後的圖像加載事件,這意味着應該已加載所有圖像。嘗試類似:

$(function() { 
    // on DOM ready 
    $('img').each(function() { 
    var $img = $(this); 
    (this.width && this.height) ? resize($img) : $img.load(function() { 
     // timeout to prevent webkit bug 45586 
     window.setTimeout((function($img) { 
     return function() { 
      resize($img); 
     }; 
     }($img)),2); 
    }); 
    }); 
});