Javascript работает в JS Fiddle, но не в моей среде Dreamweaver (через предварительный просмотр в браузере Safari или Opera или Live View) - PullRequest
0 голосов
/ 23 февраля 2012

Я наткнулся на сценарий онлайн и немного изменил его, чтобы распечатать текущую дату и время в соответствии с индивидуальными требованиями.Он отлично работает в JS Fiddle http://jsfiddle.net/PVZZ8/, но в моем HTML-документе ничего не происходит.Он не будет работать в режиме Live View и при предварительном просмотре страниц в 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> 

1 Ответ

1 голос
/ 23 февраля 2012

Когда я копировал и вставлял твой код выше и утомлял его в Dreamweaver, а также в IE9 и FIrefox и все это по ошибке.Я проверил в консоли IE9 и Firefox, и оба указали недопустимый символ после точки с запятой в конце последней строки (строка document.write).При проверке источника кода выше, я вижу, что после этой последней точки с запятой есть строка из 10 "" символов (пробел нулевой ширины).Не знаю, как они туда попали, но как только я удалил их из своего кода, страница начала работать в IE9, Firefox и Dreamweaver Live View.

Для этого мне в основном пришлось выбрать конечную точку с запятой и начальную точку<символ, удалите их и введите их заново, чтобы удалить символы пробела нулевой ширины. </p>

FWIW: «Показать скрытых символов» в Dreamweaver не отображалось.Хотя, думая об этом, не уверен, как он будет отображать что-то с нулевой шириной в любом случае, но было бы хорошо, если бы был какой-то индикатор для таких символов.Я сообщу об ошибке по адресу: http://adobe.ly/DWwish, пожалуйста, сделайте это, чем больше людей регистрируют ее, тем больше шансов, что она будет реализована.

...