本文實例分析了js中hash和ico的一些關聯。分享給大家供大家參考。具體如下:
近期測試提出一個bug,說某幾個頁面中的ico不顯示,於是針對此問題排查原因。
首先,確保頁面中的link已引入favicon.ico。經查看,發現是js中的location.hash導致了ico不顯示。原因是在ico未載入完畢時設定了location.hash從而導致ico不顯示。
location.hash在專案中常用到,用於url定位,例如http://h.liepin.com/#job-manage中的「#job-manage」。
解決方法如下(以目前專案為例,具體情況具體分析):
專案重點:
1、頁面內容是透過點擊menu發送ajax請求過來的;
2、進入頁面的顯示內容是某個menu的預設點擊事件;
3、設定location.hash是透過某個menu的點擊事件。
這樣就存在問題了,進入頁面的時候就執行了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程式設計有所幫助。