我试图根据cookie是否设置在现有网页上写一段文字。 cookie部分工作正常,但document.write导致文本出现在新的空白页面上。
<script type="text/javascript">
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);
}
}
}
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 checkCookie()
{
var username=getCookie("username");
if (username!=null && username!="")
{
alert("Welcome again " + username);
}
else
{
username=prompt("Please enter your name:","");
document.write ("hello");
if (username!=null && username!="")
{
setCookie("username",username,7);
}
}
}
</script>
<body onload="checkCookie()">
</body>
我想我需要以某种方式使用z-index,但似乎无法让它发挥作用。如果有人能解释我如何获得我的文档。在页面上已经存在的东西上面显示的行,我将非常感激。所有这些都发生在joomla网站的页面上,代码在其中一个模块的php文件中。谢谢大家。
罗布。
答案 0 :(得分:2)
document.write()
应该避免。
它有几个(可以说是)有效的用例,所有这些用例都必须在script
元素中内联使用,并在页面加载时执行。
当您在页面加载之外使用它时,它会隐式调用document.open()
来清除您的页面。
您应该支持现代标准化DOM方法。
答案 1 :(得分:2)
为身体分配ID,例如“body”,然后使用以下内容:
document.getElementById('body').innerHTML = 'Text that you want to assign';
W3学校有一个很好的example of it。
答案 2 :(得分:1)
我认为您应该在标记中定义一个部分,其中应添加消息。
<div id="wrapper">
<div id="message"></div>
<div id="content">
...
</div>
</div>
所以你可以将你的消息添加到“消息”-div:
中document.getElementById('message').innerHTML = 'Hello '+username;