【问题标题】:Get a parameter from a rewritten URL with javascript使用 javascript 从重写的 URL 中获取参数
【发布时间】:2011-11-11 05:35:43
【问题描述】:

我正在尝试使用 javascript 获取 url 参数,以便我可以将参数传递给谷歌地图

问题是我在 url 上使用 mod rewrite

www.mysite.com/1/my-event

而不是

www.mysite.com/mypage.php?id=1&name=my-event

我尝试发出警报,但它出现空白

如果我不重写 url,这是 将工作的 javascript 函数

function gup( name ){
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    if( results == null )
        return "";
    else
        return results[1];
}

【问题讨论】:

  • JS 在客户端工作。它必须使用的 url 是您在地址栏中看到的 URL。使用查询参数的服务器端重写对 JS 不可见,除非服务器端重写强制客户端重定向到重写的 url。

标签: javascript regex url mod-rewrite


【解决方案1】:

带有查询字符串的重写格式不适用于您的 JavaScript。

您必须从location.pathname(在您的示例中为/1/my-event)中获取值,而不是:

var params = window.location.pathname.split('/').slice(1); // ["1", "my-event"]

var id = params[0];
var name = params[1];

【讨论】:

  • 谢谢...我在一分钟前发现了类似的东西
【解决方案2】:

只需将 URL 拆分为 / 字符并获取结果数组中的最后一个元素,将它们映射到您期望的名称。

【讨论】:

  • 使用JS的字符串split()函数。
猜你喜欢
  • 1970-01-01
  • 2015-01-10
  • 2020-10-07
  • 2012-01-17
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多