我正在尝试在javascript中使用document.cookie进行警报(出于实验目的)。最初,它显示了cookie的罚款,突然显示“style_cookie = null”。
我在phpbb3中这样做。我正在尝试在其中添加自定义页面,我正在构建它。所以cookie setter是phpbb3。
我不确定这里出了什么问题?它与cookie超时或cookie过期有关吗?我很困惑,一些帮助将不胜感激。
代码如下所示,
alert(document.cookie);
谢谢, 阿比
答案 0 :(得分:6)
我得到了这个功能,对于Android 2.2,javascript的document.cookie工作正常,只需确保在你的Webview中... javascript启用如下:
yourWebViewVariable.getSettings().setJavaScriptEnabled(true);
for Android 3.1只需将其添加到您的java文件onLoadInit:
CookieManager.setAcceptFileSchemeCookies(true);
//这是专门使其工作的行,因此其他行是可选的
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
cookieManager.acceptCookie();
此外,这里有一些我在尝试解决此错误时发现的链接,这对于想要将变量从Javascript发送到Webview(原生Android语言)的其他人有帮助,反之亦然。
http://android-er.blogspot.com/2011/10/run-android-java-code-from-webpage.html
http://android-er.blogspot.com/2011/10/call-javascript-inside-webview-from.html
谢谢,Goodluck!
答案 1 :(得分:1)
这可能是由几件事引起的:
请注意,如果要列出所有Cookie,可以使用其他工具。例如,在Firefox中,您可以右键单击 - >查看页面信息 - >安全 - >查看Cookies。
答案 2 :(得分:0)
您是通过http测试脚本还是只调用HTML文件? cookie通过http发送,所以你必须在web服务器内调用它(http://localhost/test_cookie.html)
答案 3 :(得分:-1)
以下两个函数可以安全地用于设置或获取cookie并进行测试
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);
}
}
}
有关详情,请访问W3Schools
中的此页面