【发布时间】:2016-05-05 13:44:02
【问题描述】:
所以我有下面的代码,它从 URL 中提取一个“参数”并替换我的 HTML 中名为“demo”的 ID:示例:sample.com?demo=test
function getUrlParameter(sParam) {
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == sParam) {
return sParameterName[1];
}
}
}
var demo = decodeURIComponent(getUrlParameter('demo'));
document.getElementById('demo').innerHTML = demo;
然后我有下面的代码,它做同样的事情,除了它从 cookie 中提取
function getCookie(c_name) {
if (document.cookie.length>0) {
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1) {
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1)
c_end=document.cookie.length;
var cookieContent = "Welcome back " + unescape(document.cookie.substring(c_start,c_end));
document.getElementById('demo').innerHTML = cookieContent;
}
}
}
getCookie('demo');
我想做的是写一些立即从参数中提取的内容,如果用户在没有 URL 参数的情况下返回页面,则从 cookie 中提取。我认为这是某种 IF 语句。但是我对如何将这两个脚本结合在一起以同步工作感到困惑。
所以本质上,如果demo 在 URL 中,则插入 = demo 的任何 ID,如果不是,则查看 cookie。
如果我可以在参数中添加空格,那也很棒。所以如果网址:sample.com?demo=this+is+a+test
拥有 ID = 这是一个测试
大部分情况下我都想通了。但是,在我的 HTML 文档中,所有称为“演示”的 ID 都变为“未定义”。 我的 HTML 如下所示:欢迎新用户
如果没有设置参数或 cookie,我希望它显示“新用户”或 ID 中显示的任何内容。希望这是有道理的。
【问题讨论】:
-
我的眼睛在流血。请正确格式化您的帖子。
-
很抱歉,这次失败了。
标签: javascript cookies