簡體   English   中英

如何使用Javascript獲取URL變量

[英]How do I obtain URL variables with Javascript

我正在使用PHP,mySQL和Javascript編寫登錄系統。 我的網站實際上是一個用javascript編寫的1頁應用程序 - 只有1個html頁面。 所有交互和導航都是通過javascript完成的。

當用戶注冊時,我在數據庫中使用激活列中的32位數字鍵創建記錄。 我通過電子郵件將此郵件作為激活鏈接發送給注冊人。 這將他們帶到一個激活他們帳戶的php文件(如果有錯誤,則不會)。 一切都很好。

激活(或錯誤)后,我可以將它們帶到一個html頁面(例如標題('somesite.com/success.html')告訴他們他們的帳戶是否被激活,但我更願意將他們帶回特定的功能在我的1頁javascript網站。我該怎么做?

我可以帶他們到網站,但如何從我的PHP重定向傳遞到網站的消息,以便它知道是否顯示成功或錯誤消息?

我是否將它放在重定向的URL中,例如http://somesite.com?activation=success 如果是這樣,我如何將此變量放入我的javascript中?

我可以從php激活腳本設置一個會話變量,並在我的代碼中檢查它,但這看起來非常笨拙。

我可以在URL中設置一個哈希並在代碼中選擇它,但如果可以,我會避免哈希導航。 關於實現這個方法的任何想法?

以下幫助和網站其他地方的最終答案:

function getURLParameter(name) {
return decodeURIComponent(
    (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1]
);
}

然后重新定位注冊,例如somesite.com?email=somebody%40else@somewhere.com&key=7da93f78cb4942555863c161f50f258d

我可以像getURLParameter('email')和getURLParameter('key')一樣簡單地獲取這些變量

謝謝大家的幫助。 一定要喜歡這個網站

由於你的單頁應用程序中包含所有內容,因此您也可以將其用於激活 - 將激活鏈接轉至http://homesite.com?activation=<32characterkey> ,當您的應用程序檢測到GET參數時,請使用AJAX調用PHP激活,並通知用戶結果。

您可以使用Javascript從URL獲取變量:

我實際上問過一個類似的問題(我找不到)關於用Javascript獲取URL變量,有人非常有幫助地給了我這個函數:

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

因此,要獲得一個名為“激活”的GET變量,您可以像這樣簡單地調用函數:

getUrlVars()['activation']

您應該使用AJAX登錄並在AJAX成功/錯誤回調中調用您的函數。

你可以使用jQuery $.ajax()函數輕松完成

http://api.jquery.com/jQuery.ajax/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM