本文實例分析了js中hash和ico的一些關聯(lián)。分享給大家供大家參考。具體如下:
近期測試提出一個bug,說某幾個頁面中的ico不顯示,于是針對此問題排查原因。
首先,確保頁面中的link已引入favicon.ico。經(jīng)查看,發(fā)現(xiàn)是js中的location.hash導致了ico不顯示。原因是在ico未加載完畢時設置了location.hash從而導致ico不顯示。
location.hash在項目中經(jīng)常用到,用于url定位,例如http://h.liepin.com/#job-manage中的“#job-manage”。
解決方法如下(以當前項目為例,具體情況具體分析):
項目要點:
1、頁面內(nèi)容是通過點擊menu發(fā)送ajax請求過來的;
2、進入頁面的顯示內(nèi)容是某個menu的默認點擊事件;
3、設置location.hash是通過某個menu的點擊事件。
這樣就存在問題了,進入頁面的時候就執(zhí)行了menu的點擊事件,于是就設置了location.hash。
可以這樣做,設置一個變量,確保剛進入頁面時不會設置location.hash。
$(function(){ $('.menu a').click(function(event,hashBoolean){ var that = $(this); $.ajax({ url:'', type:'GET', data:{}, cache:false, dataType:'json', success:function(data){ if(data.flag == 1){ if(!hashBoolean) location.hash = ['id',that.attr('data-id')].join('='); } } }); }); $('.menu a').eq(0).trigger('click',[true]);});
希望本文所述對大家的javascript程序設計有所幫助。
新聞熱點
疑難解答