javascript - 用户设置 BackgroundImage。将图片 url 存储在 cookie 中,以便下次访问时加载

标签 javascript html cookies background-image

我在网站上工作:

http://tawfiq-aliyah.co.uk/epic/Site2/

我希望用户能够设置 BackgroundImage。我已经通过左下角的弹出菜单实现了这一点。但我想要的是存储有关用户选择背景图像的数据,以便当他们返回网站或移动到网站上的另一个页面时,它会加载相同的背景图像。

我在 w3schools.com 网站上查看了 java cookie w3schools.com/js/js_cookies.asp

我看过这个例子,但我不确定如何让 cookie 存储 backgroundImage 而不是存储用户名。

任何帮助将不胜感激。 谢谢

最佳答案

在背景图像选择器中缩略图的点击处理程序中,您可以执行如下操作:

onclick="main.style.backgroundImage='url(images/back3.jpg)'"

如果你用函数替换它:

onclick="setBackgroundImage('images/back3.jpg')"

然后

function setBackgroundImage(url) {
    main.style.backgroundImage = 'url(' + url + ')';
    setCookie('BG', url, 100);    // Or however many days you want.
}

然后,在 onload 处理程序中,执行如下操作:

var bg = getCookie('BG');
if(bg)
    main.style.backgroundImage = 'url(' + bg + ')';

虽然您可能想要对 cookie 值进行更多的健全性检查,但您有一个可用背景列表,因此您可以只检查是否定义了 bg 并且它在列表中。

此外,您可能希望为图像使用绝对 URL 而不是相对 URL,这样可以更轻松地移动内容。

关于javascript - 用户设置 BackgroundImage。将图片 url 存储在 cookie 中,以便下次访问时加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4240665/

相关文章:

php - AWS Cloudfront 签名 Cookie 不适用于备用域

javascript - 出现此错误 - 无法获取未定义或空引用的属性 'mData'

javascript - jScrollPane 无法在 Windows 8 触摸屏笔记本电脑的浏览器上滚动内容

javascript - document.getElementsByClassName(...)[0] 在 GM 脚本中未定义,在 JS 中有效

html - 在 VS 预制样式中对齐 DIV 部分

php - vBulletin 作为整个网站的登录名(编辑 : a certain amount of progress has been made)

带淡入淡出的 JavaScript 图像 slider

javascript - jquery 隐藏方法只隐藏 div 一秒钟,然后 div 自动重新出现

javascript - 如何更改表 HTML e Jquery 中数据属性和 td 的值

javascript - AngularJs:在自定义服务中使用 cookie