html / php doc中的document.write写入新页面

时间:2011-09-23 00:01:03

标签: php javascript html joomla

我试图根据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文件中。谢谢大家。

罗布。

3 个答案:

答案 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;