0

我有一个简单的投票系统,其中有一个颜色框作为投票表格。当一个人点击投票时,它会将他们带到 vote.html?id=X(x 是一个数字)。vote.html 显示在颜色框中。在颜色框中,我得到了 URL 参数,但它没有找到 id 作为参数。知道如何将 id 传递到颜色框中吗?这是代码...

Javascript:

<script>
    function voteForShirt(shirtId) {
        alert("vote.htm?="+shirtId);
        $('#').colorbox();
        $.colorbox({href:"vote.html?id="+shirtId});
    }
</script>

以下是出现在颜色框中的 vote.html 中的 Javascript

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

    var shirtId = getUrlVars()["id"];
    alert(shirtId);
    document.getElementById('title').innerHTML = "<h1>You're Voting for Shirt " + shirtId + "</h1>";    
</script>

在这里,当我提醒 shirtId 时,我变得不确定。

4

2 回答 2

0

看起来您应该使用 iframe 而不是 ajax。当您使用 ajax 时,您并没有创建新的窗口对象,因此 window.location 指的是您当前的位置(而不是 vote.html)。

于 2012-10-08T22:42:06.593 回答
0

我不知道您的正则表达式有什么问题,但请尝试使用此函数来解析 id。

<script type="text/javascript">
function getParameterByName(name)
{
  name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
  var regexS = "[\\?&]" + name + "=([^&#]*)";
  var regex = new RegExp(regexS);
  var results = regex.exec(window.location.search);
  if(results == null)
    return "";
  else
    return decodeURIComponent(results[1].replace(/\+/g, " "));
 }
</script>

资料来源:Artem Barger

于 2012-10-08T05:45:09.187 回答