2012-10-23 32 views
0

我想從鏈接中獲取URL請求變量並將它們傳遞給CFC組件。我已經有了可以處理所有事情的工作代碼(jQuery,AJAX,CFC),但我只需要從特定鏈接中獲取#URL.whatever#如何使用jquery/javascript獲取url變量?

在Coldfusion代碼中,我可以輕鬆地使用#URL.whatever#,但不知道如何從客戶端獲取它。另外,如果我一直在使用IIS URL重寫,這有什麼關係嗎?我目前正在將www.website.com/page.cfm?category=cat1重寫爲www.website.com/page/cat1

在這兩種情況下Coldfusion都可以通過#URL.category#訪問請求變量,這是絕對沒有區別的。那麼我怎樣才能用JavaScript/jQuery來做到這一點,它不應該很複雜,對吧?

+0

如果需要,您需要自己寫。當JavaScript是第二個文件夾是頁面的子文件夾時,您無法知道您已將第二個文件夾映射到類別。 – scottheckel

+0

這樣的事情? http://jsfiddle.net/7MAUv/10/ – Ghostman

+0

你可以解釋你需要什麼? – Ghostman

回答

0

好吧,我們需要更多的細節,建議如何去鏈接的引用,但這樣的事情應該工作:

HTML

<a id="mylink" href="www.website.com/page.cfm?category=cat1">Website.com</a> 

JS

var href = document.getElementById('mylink').href; 
0

對,你想要使用的是分析window.location.href變量的函數。

var URL_PARAM = getUrlVars()["category"]; 

或者,如果該URL到您的網頁是www.website.com/page.cfm?category=cat1 & anotherparam = 12345

var URL_PARAM1 = getUrlVars()["category"]; 
var URL_PARAM2 = getUrlVars()["anotherparam"]; 

我不能肯定地說,它將如何通過URL重寫進行操作。

URLVars:

function getUrlVars() { 
    var vars = {}; 
    var parts =window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { 
     vars[ decodeURIComponent(key)] = decodeURIComponent(value); 
    }); 
    return vars; 
} 
+0

getUrlVars()定義在哪裏?在我的控制檯嘗試它沒有工作.. –

+0

是的抱歉回合,忘了我在我的主要js文件。編輯原始帖子。 –

+0

你的'getUrlVars'忘記到'decodeURIComponent' –

0

這個問題提出了一種方法來獲取變量,我覺得稍微容易比Blaise的正則表達式理解。它還可以正確解開URL的值Get Querystring with Dojo

function getUrlParams() { 

    var paramMap = {}; 
    if (location.search.length == 0) { 
    return paramMap; 
    } 
    var parts = location.search.substring(1).split("&"); 

    for (var i = 0; i < parts.length; i ++) { 
    var component = parts[i].split("="); 
    paramMap [decodeURIComponent(component[0])] = decodeURIComponent(component[1]); 
    } 
    return paramMap; 
} 

var params = getUrlParams(); 
console.log(params.myParam); 
+0

我剛剛測試過你的代碼,它的訣竅:)我怎麼能手動設置類別爲所有如果(location.search.length == 0)可能是這樣的var var paramMap = All;這是正確的 – user1751287

+0

@ user1751287不,這是用於檢索的代碼,而不是用於設置url參數,這將是一個完全不同的問題 –

+0

來澄清頁面不包含URL參數(www.website.com/page。cfm)我想將它設置爲All。這可能嗎? – user1751287