本文實例分析了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程序設計有所幫助。