0

抱歉,如果这是一个菜鸟问题,网络管理员在不知不觉中变成了网络开发人员:) 我试图了解如何获取当前的 sessid 并将其放入 sessid= (current sessid) 的 javascript 中,它在网址上并生成当您访问搜索页面时。例如:http ://www.southerntiredirect.com/shop/catalog/search?sessid=uUQgRHQyekRGJcyWwTFwf5hxep7cdYlV4CdKfunmjxNOQPEgDZdJD2tNgRsD7Prm&shop_param=

<script language="JavaScript">
    var url= "http://www.southerntiredirect.com/online/system/ajax_search_manufacturer?sessid=????????";
  </script><script type="text/javascript" src="http://www.southerntiredirect.com/online/templatemedia/all_lang/manufacturer.js"></script><input type="hidden" name="sessid" value="sessid??????">
4

3 回答 3

0

您可以使用一个简单的正则表达式:

var url = "http://www.southerntiredirect.com/shop/catalog/search?sessid=uUQgRHQyekRGJcyWwTFwf5hxep7cdYlV4CdKfunmjxNOQPEgDZdJD2tNgRsD7Prm&shop_param=";
var match = url.match(/sessid=([^&]+)/);
if (match === null) {
    throw new Error("now what? D:");
}
var sessid = match[1];

英语中的正则表达式:查找"sessid="然后捕获任何不是&

于 2013-05-22T17:53:32.457 回答
0

使用我方便的花花公子库 URLTools!

图书馆

//URLTools- a tiny js library for accessing parts of the url
function urlAnalyze(url) {
    if (url == undefined) {var url = document.location.toString();}
    url = url.replace(/\%20/g," ");
    //seperates the parts of the url
    var parts = url.split("?");
    //splits into sperate key=values
    if (parts[1] == undefined) {return 1;}
    var keyValues = parts[1].split("&");
    var key = function () {}
    keyValues.forEach(function (keyValue) {
        var keyAndValue = keyValue.split("=");
        key[keyAndValue[0]] = keyAndValue[1];
    });
    return key;
}

然后,只需调用 URLAnalyze 并获取 sessid 密钥。

用法

var urlKeys = urlAnalyze(),
    sessid = urlKeys["sessid"];
于 2013-05-22T17:58:44.207 回答
0

是一个很棒的函数,它可以抓取你想要的任何东西并返回它的键和值。

此函数的主要部分使用获取 url window.location.href,然后对其执行正则表达式以查找键和值。

我不相信这个代码。

请转到链接以查看完整示例

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(
        /[?&]+([^=&]+)=([^&]*)/gi,
        function(m,key,value) {
            vars[key] = value;
        });
    return vars;
}
于 2013-05-22T17:59:10.443 回答