通过 document.cookie 可以直接获取当前页面 cookie 的值,得到的是一个字符串。下面的例子读取当前页面的 cookie(如果有的话):
<html> <body> <p>与本文档相关的 cookies:</p> <script type="text/javascript"> document.write(document.cookie) </script> </body> </html>
运行该例子,输出如下(不同的文档及不同浏览器输出内容可能不同):
与本文档相关的 cookies: PHPSESSID=lk40pcgaqnh1s1545oqvbsrlo3; BHvI_2132_widthauto=1; BHvI_2132_ulastactivity=f1812nHW40njUS8xhWoNcehET9hmgMGu2Bxk2N7yrAjczvtwnxNN; BHvI_2132_lastcheckfeed=1%7C1352996907; BHvI_2132_auth=5230MHZEAi0DAOCDQtFhZVCtvcRTHKt%2BwZXXayJd5mjimRBXJHbyKAq2nm570bcBHUK2fJblfSUlmCPPrLn7; BHvI_2132_nofavfid=1; BHvI_f9e0_nofavfid=1; BHvI_f9e0_ulastactivity=65186DADp3j90bfuldtDqrvjeiR08WDS9zEv%2FllVdK%2FF1zUWF7bt
很遗憾 JavaScript 不支持直接通过 name 来获取对应的 cookie 值,需要通过处理得到的 cookies 字符串来实现:
var str_cookie = document.cookie; var arr_cookie = str_cookie.split("; "); var php_session; //遍历 arr_cookie 数组 for(var i=0;i<arr_cookie.length;i++){ var arr = arr_cookie[i].split("="); //找到名称为userId的cookie if("PHPSESSID"==arr[0]){ php_session=arr[1]; break; } } document.write(php_session);