Javascript document.cookie不工作

Javascript document.cookie不工作,javascript,cookies,Javascript,Cookies,我试图在一个警报中使用javascript中的document.cookie(用于实验目的)。最初,它显示cookie的精细,突然它显示“style_cookie=null” 我是在phpbb3里做的。我正在尝试在其中添加一个自定义页面,我正在构建它。所以cookiesetter是phpbb3 我不确定这里出了什么问题?它与cookie超时或cookie过期有关吗?我很困惑,希望能得到一些帮助 代码如下所示: alert(document.cookie); 谢谢, Abi可由以下几种因素引起:

我试图在一个警报中使用javascript中的document.cookie(用于实验目的)。最初,它显示cookie的精细,突然它显示“style_cookie=null”

我是在phpbb3里做的。我正在尝试在其中添加一个自定义页面,我正在构建它。所以cookiesetter是phpbb3

我不确定这里出了什么问题?它与cookie超时或cookie过期有关吗?我很困惑,希望能得到一些帮助

代码如下所示:

alert(document.cookie);
谢谢,
Abi可由以下几种因素引起:

  • cookie过期(如果未设置过期,则cookie为每个会话)
  • 仅限http-您可以告诉浏览器不要发送cookie值
  • cookie作用域-cookie只能对某些子域或子URL有效

请注意,如果要列出所有cookie,可以使用其他工具。例如,在Firefox中,您可以右键单击->查看页面信息->安全->查看cookie。

以下两个函数可以安全地用于设置或获取cookie,并且还可以进行测试


函数setCookie(c_名称、值、exdays)
{
var exdate=新日期();
exdate.setDate(exdate.getDate()+exdays);
var c_value=escape(value)+(exdays==null)?“”:“expires=“+exdate.toutString());
document.cookie=c_name+“=”+c_值;
}
函数getCookie(c_名称)
{
变量i,x,y,ARRcookies=document.cookie.split(“;”);
对于(i=0;i<0.length;i++)
{
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf(“=”);
y=ARRcookies[i].substr(ARRcookies[i].indexOf(“=”)+1);
x=x.replace(/^\s+|\s+$/g,”);
如果(x==c_名称)
{
返回unescape(y);
}
}
}

有关更多信息,请访问中的本页。您是否通过http测试脚本或仅调用HTML文件?cookie通过http发送,所以您必须在web服务器内部调用它,就像(http://localhost/test_cookie.html)对于Android 2.2,javascript的document.cookie工作正常,只需确保在您的Webview中启用javascript…如下所示:

yourWebViewVariable.getSettings().setJavaScriptEnabled(true)

对于Android 3.1,只需将其添加到java文件onLoadInit中:

CookieManager.setAcceptFileSchemeCookies(true)//这是专门使其工作的行,因此其他行是可选的

CookieManager CookieManager=CookieManager.getInstance()
cookieManager.setAcceptCookie(true)
cookieManager.acceptCookie()

另外,在我试图找出这个错误的过程中,我发现了一些链接,这可能对其他希望将变量从Javascript发送到Webview(本机Android语言)的人有所帮助,反之亦然


谢谢,祝你好运

当然,很明显,你需要引用一些代码,以便人们能够帮助你解决这个问题?@Abh那么,设置cookie的代码是什么?什么时候,在什么浏览器上“显示cookie很好”是什么意思?我们仍然缺少太多的细节。@Shadow和@Crowder:添加了缺少的信息。。很抱歉不清楚…@Abhi仍然不确定发生了什么事。它上次什么时候“起作用”的?你看到了什么?从那时起,你是否更新了第三方软件?无论如何,T.J Crowder没有看到你的评论。你需要发布新的评论,至少
@T.J
,以便向他发送通知。@Shadow和@T.J:在最初的15分钟内,它工作正常,但后来就不起作用了。没有,之后我没有安装任何第三方软件。而且,在编写此代码之前或之后,我没有对系统进行任何更改。谢谢。谢谢,我不是w3,但你应该谈谈你在评论中的错误。如果document.cookie没有显示cookie,你的代码也不会显示cookie。此外,W3C学校与W3C没有任何关系,它们只是一个过时的网站,具有良好的SEOAB绝对正确,适用于蜂巢和更高级别的CookieManager.setAcceptFileSchemeCookies(true);一定要用!谢谢(即使问题没有标记:Android。)
function setCookie(c_name, value, exdays)
{
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
    document.cookie = c_name + "=" + c_value;
}
function getCookie(c_name)
{
    var i, x, y, ARRcookies = document.cookie.split(";");
    for (i = 0; i < ARRcookies.length; i++)
    {
        x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("="));
        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1);
        x = x.replace(/^\s+|\s+$/g, "");
        if (x == c_name)
        {
            return unescape(y);
        }
    }
}