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