单击另一页上的链接时传递参数的Javascript

时间:2015-06-15 22:40:46

标签: javascript jquery html twitter-bootstrap parameter-passing

我在我的网站上实现了一个滑块,并希望在点击其他页面上的链接时获得特定值:

以下是我想要更改的脚本和参数:

$("#screeningSlider").ionRangeSlider({
    hide_min_max: true,
    keyboard: true,
    from: 20,
    min: 1,
    max: 2000,
    step: 0,
    grid_num: 4,
    prettify_separator: ",",
    postfix: " Units",
    max_postfix: "+",
    force_edges: true,

});

因此,当在另一个页面上时,我想点击一个允许我登陆此页面的按钮,但参数FROM为10而不是上面的默认值。只有从该特定按钮中选择时才会出现这种情况。

以下是我的网站,其中包含滑块:http://therrd.com/screening.html#tenant-Screening

2 个答案:

答案 0 :(得分:1)

如果您不想使用服务器端,可以这样做

[<强> EDITED

1 - 设置链接

<a href="yourpage.html?slide=10">Go</a>

2 - 在yourpage.html中设置您的功能

  vals = {max: 100, min: 0, def: 20} //use your own values here for max min and def
  var param = window.location.href.split("slide=");
  slide = isNaN(param[param.length - 1]) || 
          param[param.length - 1] > vals.max ||
          param[param.length - 1] < vals.min ? vals.def : param[param.length - 1];
          //check if there is a url param, if it's a number and if it's in range      

  $("#screeningSlider").ionRangeSlider({
        hide_min_max: true,
        keyboard: true,
        from: slide,
        min: 1,
        max: 2000,
        step: 0,
        grid_num: 4,
        prettify_separator: ",",
        postfix: " Units",
        max_postfix: "+",
        force_edges: true,

  });

答案 1 :(得分:1)

如果不将页面存储在其他形式中,然后将其解析回JavaScript,则不可能在页面之间共享JavaScript值。

您可以使用网址参数,然后解析传入的网址,并从那里导入默认的from值。

<a href='http://www.yoursite/?from=10'>Referral </a>

显而易见,任何人都可以偷看你的网址,然后尝试游戏你的系统(想想如果他们把它设置为?from=0会发生什么并且你没有防范它)。你还需要防止注射攻击。

您可以使用localStorage在点击该特定按钮后设置密钥,然后在加载主页时检查localStorage该密钥以获得预期的默认值from值。

为特殊链接设置点击值:

$('#link').on('click', function(){
  localStorage.setItem('fromValue', 10);
});

并在加载时检索结果页面:

var fromValue = localStorage.getItem('fromValue')
if (fromValue) { /* adjust the slider's default from value*/ }