如何更改URL参数以停止图像重新加载

时间:2012-01-03 18:09:01

标签: jquery url-parameters

我有一个图像,我只想在主页上加载一次,通过我的介绍页面访问(它消失,加载时,我的介绍页面的一种视觉回声)。在点击导航栏中的“主页”后,我不希望图像显示在后续视图的主页上。

我被建议设置一个cookie,或使用URL参数“来指定是否淡化图像”(set / index?nofade = true)。我希望尝试后者,因为不是每个人都能使用cookie。

事情是,经过一天的网上拖网,我不知道该怎么做,(脸红)。

任何人都可以帮助我吗?我不熟悉编码,所以不确定如何编写/封装'no fade true'位,我正在使用jquery。

3 个答案:

答案 0 :(得分:2)

您可以使用javascript轻松解析网址的参数,然后检查特定的“nofade”参数是否存在(或任何其他参数),如果存在则淡化您的图像

$(function(){
  // Grab our url parameters and split them into groups
  var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
  // assign parameters to our object
  var params = {};
  for(var i = 0; i < hashes.length; i++){
    var hash = hashes[i].split('=');
    params[hash[0]] = hash[1];
  }
  // Now params contains your url parameters in an object
  if(typeof(params['nofade']) === 'undefined' || !params[nofade]){
    // Perform image fade here

  }
})

答案 1 :(得分:1)

您可以添加一项检查,看看是否在您的代码之前设置了查询字符串以淡化图像。

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

if(getQuerystring('nofade') == 'true'){
    //do your fading
}

该函数使用正则表达式来解析传递它的查询字符串,如果找不到该查询字符串,则使用可选设置的默认值返回其值

答案 2 :(得分:1)

如果我理解正确,您希望当有人访问您的网页http://www.example.com时,您的徽标每次访问该网页时都会存在,然后必须点击您的徽标才能进入http://www.example.com/homepage.php你的徽标会淡出。

但如果他们随后重新加载您的页面,您希望徽标不在那里?这是正确的。

如果是这样,您只需要将徽标上的href设置为“homepage.php?fade = true”。然后你可以获取传递的变量并执行if语句来查看是否应该重新加载页面或向它们显示淡出。