2013-01-17 44 views
3

我目前正在研究一個簡單的ipad webapp測試片,並陷入了一個簡單的switch語句,它不會以某種方式工作; 我想根據javascripts window.location字符串格式化元素。這可能令人尷尬難以解決;但我莫名其妙地沒有得到它: 還是有什麼特別的window.location?與window.location字符串的Javascript開關問題

$(document).ready(function() { 
path_c = window.location; 
switch (path_c){ 
    case "http://192.168.1.37/ryba_testground/": 
    $('#menu-item-22').addClass('current_page_item'); 
    alert(path_c); 
    break; 
    case "http://192.168.1.37/ryba_testground/?page_id=7": 
    $('#menu-item-21').addClass('current_page_item'); 
    break; 
    case "http://192.168.1.37/ryba_testground/?page_id=9": 
    $('#menu-item-20').addClass('current_page_item'); 
    break; 
    case "http://192.168.1.37/ryba_testground/?page_id=11": 
    $('#menu-item-19').addClass('current_page_item'); 
    break; 
} 
}); 

THX!

+5

是的,它是一個宿主對象。試試谷歌可能幫助過的'window.location.href' – Bergi

+0

!也是一個調試器..... – mercsen

回答

0

我想你想要屬性的window.location對象。

path_c = window.location.href; 

完整腳本

$(document).ready(function() { 
    path_c = window.location.href; 

    switch (path_c){ 
     case "http://192.168.1.37/ryba_testground/": 
     $('#menu-item-22').addClass('current_page_item'); 
     alert(path_c); 
     break; 
     case "http://192.168.1.37/ryba_testground/?page_id=7": 
     $('#menu-item-21').addClass('current_page_item'); 
     break; 
     case "http://192.168.1.37/ryba_testground/?page_id=9": 
     $('#menu-item-20').addClass('current_page_item'); 
     break; 
     case "http://192.168.1.37/ryba_testground/?page_id=11": 
     $('#menu-item-19').addClass('current_page_item'); 
     break; 
    } 
}); 

實施例:http://jsfiddle.net/9vjY9/

2

window.location的返回地點對象,其中包含有關該文檔的URL信息,並提供用於改變URL的方法。因此將其更改爲:

var path_c = window.location.href; 
0

該代碼似乎沒問題。嘗試alert (window.location.href)console.log(window.location.href),那麼你可以確切地檢查window.location.href爲你測試的每個頁面得到了什麼。這可能會揭示問題。

0

您可以使用window.location.toString()window.location.href,你甚至可以儘量避免使用開關,用對象圖和正則表達式來篩選目標網址:

var page_idMap = { 
    '7': '#menu-item-21', 
    '9': '#menu-item-20', 
    '11': '#menu-item-19' 
} 
var id = window.location.href.match(/page_id[=]([0-9]+)/i); 
if (!id || !page_idMap(id[1])) { 
    $('#menu-item-22').addClass('current_page_item'); 
} else { 
    $(page_idMap[id[1]]).addClass('current_page_item'); 
} 
3

或者是有什麼特別的窗口。位置?

這是一個宿主對象,它有時候不可預測。至少,這是一個對象,當它被轉換爲字符串時,它的計算結果爲href - 但與switch的案例相比,這並不會發生。使用

var path_c = window.location.href;