Javascript 按下按钮时删除特定cookie
我有一个下拉列表,它根据用户选择设置cookie,这是做回发,并在这一点上设置cookie。为了给你多一点上下文,网站是一个目录,用户去把他们的选择,然后他们搜索。在显示的产品顶部有一种对列表排序的方法,这是设置cookie的地方。在客户进行新的搜索或重置搜索之前,这在正常情况下非常有效。由于排序有一个cookie,该cookie没有直接绑定到搜索,因此会维护cookie并始终显示所选内容,即使在新搜索完成后,现在可能不会使用此方法进行排序 因此,我正在寻求有关如何在选择按钮时删除此cookie集的帮助,此按钮是:Javascript 按下按钮时删除特定cookie,javascript,jquery,cookies,Javascript,Jquery,Cookies,我有一个下拉列表,它根据用户选择设置cookie,这是做回发,并在这一点上设置cookie。为了给你多一点上下文,网站是一个目录,用户去把他们的选择,然后他们搜索。在显示的产品顶部有一种对列表排序的方法,这是设置cookie的地方。在客户进行新的搜索或重置搜索之前,这在正常情况下非常有效。由于排序有一个cookie,该cookie没有直接绑定到搜索,因此会维护cookie并始终显示所选内容,即使在新搜索完成后,现在可能不会使用此方法进行排序 因此,我正在寻求有关如何在选择按钮时删除此cookie
<a id="dnn_ctr555_ProductSearch_rpData_cmdAdvSearch_0" class="postbacklink searchpostbacklink nb-catfilter-search" href="javascript:__doPostBack('dnn$ctr555$ProductSearch$rpData$ctl00$cmdAdvSearch','')">Search</a>
要了解cookie和下拉列表工作的详细信息,请参见以下内容:
<!-- List header -->
<select id="Selection" class="sorter" onchange="document.cookie= 'myDDIdx = ' + this.selectedIndex + '; path=/;';location=this.options[[this.selectedIndex]].value" style="float:right;margin-right:8px;">
<option value="">Sort by</option>
<option value="?orderby=0">Code</option>
<option value="?orderby=1">Title A-Z</option>
<option value="?orderby=2">Title Z-A</option>
<option value="?orderby=3">Brand</option>
<option value="?orderby=4">Lowest price</option>
<option value="?orderby=5">Highest price</option>
<option value="?orderby=6">Lowest Quantity</option>
<option value="?orderby=7">Highest Quantity</option>
</select>
<div style="clear:both;"></div>
<script>
var sidx = document.cookie.indexOf("myDDIdx");
if(sidx != -1)
window.onload = function () { document.getElementById("Selection").selectedIndex = document.cookie.substr(sidx + 8,1); }
</script>
任何代码狙击手都会非常感激,因为我觉得我的头撞在了砖墙上 原始document.cookie API太差劲了。您应该添加以下代码段,而不是尝试直接访问它:
此外,您还可以将原始cookie setter代码简化为如下内容:
<select id="Selection" class="sorter" onchange="docCookies.setItem('myDDIdx', this.selectedIndex); location=$(this).val();" style="float:right;margin-right:8px;">
不确定设置位置变量的原因是什么,尽管我已经简化了它,假设您加载了jQuery,因为您的问题被jQuery标记了如果您随身携带cookie名称,那么纯javascript:
var Cookienames = ['cookie1', 'cookie2', 'cookie3'];
function clearCookies(Cookienames){
for(i=0; i <= Cookienames.length; i++){
document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
}
在要删除cookie的位置调用此函数。clearCookiesCookienames
此外,如果您正在使用父域设置跨浏览器cookie,则:
function clearCookies(Cookienames){
for(i=0; i <= Cookienames.length; i++){
document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=".xyz.com";path=/';
}
}
document.cookie='myDDIdx=';应该这样做。所以我已经尝试了上面的方法,它正在设置cookie,但没有设置位置,所以刷新时下拉选择丢失了。它以前设置过吗?位置变量用于什么?你的代码没有显示它的使用位置。刷新页面将始终清除所有javascript变量。
var Cookienames = ['cookie1', 'cookie2', 'cookie3'];
function clearCookies(Cookienames){
for(i=0; i <= Cookienames.length; i++){
document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
}
function clearCookies(Cookienames){
for(i=0; i <= Cookienames.length; i++){
document.cookie = Cookienames[i] + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;domain=".xyz.com";path=/';
}
}