2013-05-13 86 views
0

我目前正在用jqGrid 4.4.5 fir進行第一次開發,而且我遇到了一個老版本的bug,在過去的版本中已經找到了一個修復程序,但是我現在正在用jQuery 1.9.1和jqueryui 1.9.2進行開發。jqGrid 4.4.5 Chrome中的網格列寬度渲染問題

原始問題和修復已發佈here。我在這些插件的新版本中遇到了同樣的麻煩,但那些熟悉jQuery 1.9的人會知道$.browser已被棄用。這使得以前的解決方案無法使用。任何人都可以幫助使用類似的解決方案,或者至少在新版插件中使用jqGrid 4.4.5等效代碼?

備註:要添加之前未提及的內容,此問題可能會因爲將瀏覽器縮放設置爲90%或更小而重新創建。在100%縮放時,它可以正確呈現,但低於100%的任何內容都會出現問題。 (我需要它在90%變焦渲染)。

注意:我已經切換回4.3.1來測試舊的修補程序的應用程序,它的工作完美,所以它似乎是Chrome的老問題給我。

在此先感謝幫助和努力幫助我解決問題。

親切的問候,

彼得。

回答

0

可以使相同的條件下在這裏.browser $ jQuery的1.9使用下面的代碼,並使用在link

貼,你可以使用下面的代碼檢查瀏覽器的條件相同的解決方案。

jQuery.uaMatch = function(ua) { 
    ua = ua.toLowerCase(); 

    var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || 
     /(webkit)[ \/]([\w.]+)/.exec(ua) || 
     /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || 
     /(msie) ([\w.]+)/.exec(ua) || 
     ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || 
     []; 

    return { 
     browser: match[ 1 ] || "", 
     version: match[ 2 ] || "0" 
    }; 
}; 



matched = jQuery.uaMatch(navigator.userAgent); 
    //browser = {}; 
    //var cursorType = evt.target.style.cursor; 
     if(matched.browser.toLowerCase()=="mozilla") 
     { 
    } 
else 
{ 
} 

其他明智的,如果你指的jQuery 1.9和1.4使用的代碼支持意味着美國可以參考jquery.migrate .js文件腳本文件在您的應用程序。

http://blog.jquery.com/2013/02/16/jquery-migrate-1-1-1-released/

https://github.com/jquery/jquery-migrate/

感謝,

溼婆

+0

溼婆嗨,我使用jQuery的遷移插件的時刻。 (雖然我教自己再次使用它,哈哈!) 問題是,jqGrid不再使用它。我確信它仍然會執行瀏覽器檢查,但我需要知道它的源代碼中的內容以及它如何通過更改來完成,以便我可以應用相同的修補程序。 Migrate將允許我使用$ .browser,但我不需要它。我需要的是相當於jqGrid當前正在使用的鏈接問題,以及它在插件源代碼中的位置。 非常感謝,男人! – PieterLourens 2013-05-14 07:58:10

+0

重新查看代碼後,它可能會解決我的問題,但沒有一個更乾淨的方法來做到這一點?在jQuery 1.9中,$ .browser已被替換爲$ .support,如果我理解正確的話。 $ .browser.webkit和$ .browser.safari是否有對應的$ .support值。 – PieterLourens 2013-05-14 09:41:26

+0

我不確定這個$ .browser.safari或$ .browser.webkit的值是否與$ .support相同。你能否請我參考更新後的代碼,它可以在所有瀏覽器中工作。您可以使用該代碼來檢查瀏覽器狀況。 – SivaRajini 2013-05-14 10:06:51