2 javascript函数冲突?
我想实现一个Javascript/PHP/AJAX时钟到我的网站,这样我可以有一个简单的时钟,它在不同的时区工作(教程这里http://networking.mydesigntool.com/viewtopic.php?tid=373&id=31)2 javascript函数冲突?
这本身工作正常,但我已经有一个运行在页面上的JavaScript秒表,和2似乎冲突和秒表正在工作时不显示时钟。
这是时钟的脚本:
<script type="text/javascript">
function loadTime()
{
http_request = false;
if(window.XMLHttpRequest)
{
// Mozilla, Safari,...
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType)
{
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
}
else if(window.ActiveXObject)
{ // IE
try
{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
}
}
}
var parameters = "time=";
http_request.onreadystatechange = alertContents;
http_request.open('POST', 'time.php', true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
function alertContents()
{
if (http_request.readyState == 4)
{
if (http_request.status == 200)
{
result = http_request.responseText;
document.getElementById('clock').innerHTML = result;
}
}
}
</script>
<body onload="setInterval('loadTime()', 200);">
,这是秒表代码:
<script type="text/javascript">
window.onload = function()
{
stopwatch('Start');
}
var sec = 0;
var min = 0;
var hour = 0;
function stopwatch(text) {
sec++;
if (sec == 60) {
sec = 0;
min = min + 1;
} else {
min = min;
}
if (min == 60) {
min = 0;
hour += 1;
}
if (sec<=9) { sec = "0" + sec; }
document.clock.stwa.value = ((hour<=9) ? "0"+hour : hour) + " : " + ((min<=9) ? "0" + min : min) + " : " + sec;
if (text == "Start") { document.clock.theButton.value = "Stop "; }
if (text == "Stop ") { document.clock.theButton.value = "Start"; }
if (document.clock.theButton.value == "Start") {
window.clearTimeout(SD);
return true;
}
SD=window.setTimeout("stopwatch();", 1000);
}
function resetIt() {
sec = -1;
min = 0;
hour = 0;
if (document.clock.theButton.value == "Stop ") {
document.clock.theButton.value = "Start";
}
window.clearTimeout(SD);
}
</script>
有人能帮助我让他们的工作并排侧好吗?
感谢所有帮助
其一,your're宣布在HTML中onload
事件处理程序:
<body onload="setInterval('loadTime()', 200);">
这是在脚本从而覆盖:
window.onload = function()
{
stopwatch('Start');
}
这意味着原来onload
通话从未执行过。
您应该尝试使用addEventListener
,以便您可以向同一事件添加多个事件处理程序。
一对夫妇更点:
- 字符串不要传递给
setInterval
和setTimeout
,只是通过函数本身。更高效且更少错误倾向:使用jQuery,mootools或gazillion其他框架之一,而不是编写所有JS代码以使用不同的浏览器,而不是使用不同的浏览器。他们使得在所有浏览器上正确使用它变得更容易。
试试这个: 看清细微 '+ =' 而不是 '='!
window.onload += function()
{
stopwatch('Start');
}
嗨刘易斯感谢您的回复。我试图改变你发布的行,并且还有行,让id为firstClock,但不幸的是问题仍然存在。你还有其他建议吗?谢谢 – 2011-04-13 11:06:59
我意识到你没有加入onload事件 - 下面的文章中的人指出了! – Lewis 2011-04-13 11:18:39
感谢刘易斯,我已经得到它在Martijn和另一个网站的帮助下排序:) – 2011-04-13 12:28:49
嗨马丁,谢谢你的帮助。不幸的是,我不太了解Javascript,只有基础知识和这些脚本都来自互联网。我在另一个网站上发布了相同的问题,并且有人指出了您所做的相同问题,并提供了代码进行分类,以便现在可以正常工作:)再次感谢! – 2011-04-13 11:46:46
嗨用户,在这种情况下,我建议从以下几个很好的JS教程开始 - 它从长远来看真的付出代价。 Javascript是非常灵活和强大的,但它也使得事情变得非常容易。 – Martijn 2011-04-13 12:02:49
嗨马丁,会做。我买了一本关于Javascript/Ajax的书,但它所经历的事情并不真正适用于我在现实世界中使用的东西。你能推荐任何好的教程来开始吗?谢谢 – 2011-04-13 12:28:03