Javascript 在chrome、safari和IE中重新加载选定索引

Javascript 在chrome、safari和IE中重新加载选定索引,javascript,jquery,ajax,google-chrome,Javascript,Jquery,Ajax,Google Chrome,事实上,这是一种延续。我追踪发现,在chrome、safari和IE等浏览器上,由于重新加载,它无法工作。因此,有没有与chrome、safari或IE兼容的方法代替window.location.reload()呢?提前感谢。如果您正在寻找另一种方法来重新加载页面,而不是location.reload();您还可以使用: window.location.href = window.location.href; 另一种(但类似的)方式: 还有其他方式: window.location.assi

事实上,这是一种延续。我追踪发现,在chrome、safari和IE等浏览器上,由于重新加载,它无法工作。因此,有没有与chrome、safari或IE兼容的方法代替window.location.reload()呢?提前感谢。

如果您正在寻找另一种方法来重新加载页面,而不是
location.reload()
;您还可以使用:

window.location.href = window.location.href;
另一种(但类似的)方式:

还有其他方式:

window.location.assign(document.URL);
// or
window.location.replace(location.href); // this will prevent the page to be saved in browser history (back button will not navigate to previous page);
// or
history.go(0); // (not recommended) history object is not public standard but all major browsers support it.
请注意,
location.reload()
接受一个
boolean
参数。默认值为
false
,从缓存重新加载页面。如果将其设置为
true
,则会强制浏览器从服务器获取页面

读了你的另一篇文章后(我不知道你是否考虑过,但是);除了设置cookies,我认为您还可以从新URL中的查询字符串值设置/获取数据:

要将某些数据传递到重定向页面,请执行以下操作:

// pass the selected index:
var selectedIndex = $('#select-box')[0].selectedIndex;
window.location.href = window.location.href + '?selIndex=' + selectedIndex;

// pass the selected value:
var selectedValue = encodeURIComponent($('#select-box').val());
window.location.href = window.location.href + '?selValue=' + selectedValue;
要从查询字符串中获取数据,请执行以下操作:

function queryStringToObject(strQS)
{
    var qs = {};
    var pairs = strQS.split('&');

    for (var i = 0; i < pairs.length; i++)
    {
        var key_val = pairs[i].split('=');
        if (key_val.length > 0)
            qs[key_val[0]] = key_val[1] && decodeURIComponent(key_val[1]);
    }
    return qs;
}

var strQS = 'field1=value1&field2=value2&field3=value3';
var qs = queryStringToObject(strQS);
console.log(qs);

您可以使用
window.location.search.substring(1)
从当前URL获取查询字符串。

如果您正在寻找另一种方法来重新加载页面,而不是
location.reload()
;您还可以使用:

window.location.href = window.location.href;
另一种(但类似的)方式:

还有其他方式:

window.location.assign(document.URL);
// or
window.location.replace(location.href); // this will prevent the page to be saved in browser history (back button will not navigate to previous page);
// or
history.go(0); // (not recommended) history object is not public standard but all major browsers support it.
请注意,
location.reload()
接受一个
boolean
参数。默认值为
false
,从缓存重新加载页面。如果将其设置为
true
,则会强制浏览器从服务器获取页面

读了你的另一篇文章后(我不知道你是否考虑过,但是);除了设置cookies,我认为您还可以从新URL中的查询字符串值设置/获取数据:

要将某些数据传递到重定向页面,请执行以下操作:

// pass the selected index:
var selectedIndex = $('#select-box')[0].selectedIndex;
window.location.href = window.location.href + '?selIndex=' + selectedIndex;

// pass the selected value:
var selectedValue = encodeURIComponent($('#select-box').val());
window.location.href = window.location.href + '?selValue=' + selectedValue;
要从查询字符串中获取数据,请执行以下操作:

function queryStringToObject(strQS)
{
    var qs = {};
    var pairs = strQS.split('&');

    for (var i = 0; i < pairs.length; i++)
    {
        var key_val = pairs[i].split('=');
        if (key_val.length > 0)
            qs[key_val[0]] = key_val[1] && decodeURIComponent(key_val[1]);
    }
    return qs;
}

var strQS = 'field1=value1&field2=value2&field3=value3';
var qs = queryStringToObject(strQS);
console.log(qs);

您可以使用
window.location.search.substring(1)
从当前URL获取查询字符串。

Nope。除非在IE7中,否则无法复制它。对于不支持
窗口
对象的浏览器,您可以简单地尝试
定位。重新加载
。@Ohgodwhy:它仍然是一样的…不。除非在IE7中,否则无法复制它。对于不支持
窗口
对象的浏览器,您可以简单地尝试
定位。重新加载
。@Ohgodwhy:还是一样的…谢谢。但问题是,在重新加载时,所选索引的值被重置为默认值,即“选择时间”。是否有任何方法可以在不重新加载的情况下执行ajax数据和url?是否要在重新加载页面时将以前选择的索引设置回原处?或者,当用户从“选择”框中选择项目时,防止页面重新加载??为什么要在ajax的回调中重新加载页面(使用
window.location.reload(false);
)?好吧,这是我的错误。实际上,我想防止在用户为选择框选择项目时重新加载页面。我意识到使用ajax时,不需要重新加载。但是,不知何故,没有重新加载它就无法工作,这使我将它添加到代码中。不管怎么说,有什么建议吗?如果不重新加载,什么是行不通的?您没有得到ajax响应吗?看这把小提琴:我使用谷歌Chrome,这一切正常。谢谢。顺便说一句,数据实际上是“var data=“startdatetime=“+choosingDateTime;”。将“html”作为数据类型是否正确?还是应该使用“脚本”?如果是这样,我应该如何写数据?它是否仍然与“var data=“startdatetime=“+choosingDateTime;”相同?谢谢。但问题是,在重新加载时,所选索引的值被重置为默认值,即“选择时间”。是否有任何方法可以在不重新加载的情况下执行ajax数据和url?是否要在重新加载页面时将以前选择的索引设置回原处?或者,当用户从“选择”框中选择项目时,防止页面重新加载??为什么要在ajax的回调中重新加载页面(使用
window.location.reload(false);
)?好吧,这是我的错误。实际上,我想防止在用户为选择框选择项目时重新加载页面。我意识到使用ajax时,不需要重新加载。但是,不知何故,没有重新加载它就无法工作,这使我将它添加到代码中。不管怎么说,有什么建议吗?如果不重新加载,什么是行不通的?您没有得到ajax响应吗?看这把小提琴:我使用谷歌Chrome,这一切正常。谢谢。顺便说一句,数据实际上是“var data=“startdatetime=“+choosingDateTime;”。将“html”作为数据类型是否正确?还是应该使用“脚本”?如果是这样,我应该如何写数据?它是否仍然与“var data=“startdatetime=“+choosingDateTime;”相同?