Javascript在JS Fiddle中工作,但不在我的Dreamweaver环境中工作(通过浏览器Safari或Opera或Live View中的预览)

Javascript在JS Fiddle中工作,但不在我的Dreamweaver环境中工作(通过浏览器Safari或Opera或Live View中的预览),javascript,dreamweaver,Javascript,Dreamweaver,我在网上看到了这个脚本,并对它进行了轻微的修改,以定制的方式打印出当前的日期和时间。它在JS Fiddle中工作得很好,但在我的HTML文档中它没有任何作用。无论是在实时视图中,还是在Safari或Opera中预览页面时,它都不起作用。我已经检查了语法,一切似乎都很好。我正在使用dreamweaver CS5。我使用了一些我在W3学校发现的较短的脚本,它们工作得很好,但我对Javascript非常陌生,所以在我使用的较长脚本中可能缺少一些一般步骤?HTML文档如下所示: <!DOCTYP

我在网上看到了这个脚本,并对它进行了轻微的修改,以定制的方式打印出当前的日期和时间。它在JS Fiddle中工作得很好,但在我的HTML文档中它没有任何作用。无论是在实时视图中,还是在Safari或Opera中预览页面时,它都不起作用。我已经检查了语法,一切似乎都很好。我正在使用dreamweaver CS5。我使用了一些我在W3学校发现的较短的脚本,它们工作得很好,但我对Javascript非常陌生,所以在我使用的较长脚本中可能缺少一些一般步骤?HTML文档如下所示:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js">
</script>
<script type="text/javascript">
function getCalendarDate()
{
   var months = new Array(13);
   months[0]  = "JAN";
   months[1]  = "FEB";
   months[2]  = "MAR";
   months[3]  = "APR";
   months[4]  = "MAY";
   months[5]  = "JUN";
   months[6]  = "JUL";
   months[7]  = "AUG";
   months[8]  = "SEP";
   months[9]  = "OCT";
   months[10] = "NOV";
   months[11] = "DEC";
   var now         = new Date();
   var monthnumber = now.getMonth();
   var monthname   = months[monthnumber];
   var monthday    = now.getDate();
   var year        = now.getYear();
   if(year < 2000) { year = year + 1900; }
   var dateString = monthday +
                    ' ' +
                    monthname +
                    ' ' +
                    year;
   return dateString;
} 

function getClockTime()
{
   var now    = new Date();
   var hour   = now.getHours();
   var minute = now.getMinutes();
   var second = now.getSeconds();
   var ap = "AM";
   if (hour   > 11) { ap = "PM";             }
   if (hour   > 12) { hour = hour - 12;      }
   if (hour   == 0) { hour = 12;             }
   if (hour   < 10) { hour   = "0" + hour;   }
   if (minute < 10) { minute = "0" + minute; }
   if (second < 10) { second = "0" + second; }
   var timeString = hour +
                    ':' +
                    minute +
                    ':' +
                    second +
                    " " +
                    ap;
   return timeString;
}

var calendarDate = getCalendarDate();
var clockTime = getClockTime();
window.onload = document.write('<p>' + 'Your fortunes as of' + ' ' + calendarDate + ' ' + ' ' + 'at' + ' ' + clockTime + '</p>');​​​​​​​​​​
</script>

</head>

<html>
<body>


</body>
</html> 

无标题文件
函数getCalendarDate()
{
var月数=新阵列(13);
月[0]=“一月”;
月[1]=“2月”;
月[2]=“三月”;
月[3]=“4月”;
月[4]=“五月”;
月[5]=“六月”;
月[6]=“7月”;
月[7]=“8月”;
月[8]=“九月”;
月[9]=“10月”;
月[10]=“11月”;
月[11]=“12月”;
var now=新日期();
var monthnumber=now.getMonth();
var monthname=月[月数];
var monthday=now.getDate();
var year=now.getYear();
如果(年份<2000){year=year+1900;}
var dateString=monthday+
' ' +
蒙特纳姆+
' ' +
年份;
返回日期字符串;
} 
函数getClockTime()
{
var now=新日期();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
var ap=“AM”;
如果(小时>11){ap=“PM”;}
如果(小时>12){hour=hour-12;}
如果(小时==0){hour=12;}
如果(小时<10){hour=“0”+小时;}
如果(分钟<10){minute=“0”+分钟;}
如果(秒<10){second=“0”+秒;}
var timeString=小时+
':' +
分钟+
':' +
第二+
" " +
ap;
返回时间串;
}
var calendarDate=getCalendarDate();
var clockTime=getClockTime();
window.onload=document.write(“”+”您在“+”+时钟时间+”的“+”+日历日期+”+“+”+”+”);​​​​​​​​​​

当我复制并粘贴您的代码,并在Dreamweaver、IE9和FIrefox中使用时,所有代码都出错了。我在IE9和Firefox的控制台中进行了检查,都在最后一行(document.write行)末尾的分号后面指出了一个非法字符。在检查上述代码的源代码时,我看到在最后一个分号之后有一个10“​”字符的字符串(零宽度空格)。不知道他们是怎么做到的,但一旦我把他们从我的代码中删除,页面就开始在IE9、Firefox和Dreamweaver的Live View中工作

要做到这一点,我基本上必须选择尾随分号和开头<字符,删除它们并重新键入它们,以便删除零宽度空格字符


FWIW:Dreamweaver的“隐藏角色”节目没有显示这些角色。虽然在考虑它,不确定它将如何显示零宽度的东西,但如果有这样的字符的某种指示符,这将是很好的。我将在以下位置记录一个bug:请也这样做,记录它的人越多,实现它的机会就越大。

FYI/您不需要将空格与字符串分隔开,这似乎很奇怪:
+'+'+'+'+'+'+
可以是
+'at'+