以下是在线上 float 的通用代码,这些代码检查是否在特定浏览器中启用了cookie:
var cookieEnabled = (window.navigator.cookieEnabled) ? true : false;
if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
document.cookie = "testcookie"
cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false
}
if (!cookieEnabled) {
// do some work
}
为什么第一行和第五行三元声明?是否
var cookieEnabled = (window.navigator.cookieEnabled) ? true : false;
遇到以下情况不会的情况?
var cookieEnabled = (window.navigator.cookieEnabled);
第五行也是如此。
最佳答案
第一行的三元语句很有用,因为它会将可能的非 bool(boolean) 值转换为 bool(boolean) 值。考虑以下代码
window.navigator.cookieEnabled = "evil people do this";
以上是合法的,正如值(value)所表明的,邪恶的人这样做。没有三元语句,以下代码将无法按预期执行
if (cookiesEnabled === false) {
// ...
}