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