Скрипт выдает ошибки, которые я не могу найти - PullRequest
1 голос
/ 18 мая 2011

Конечная цель - вернуть страницу со следующим предложением

Когда-то был ГЕНДЕР с именем ИМЯ
, у которого был ПЭТ с именем ИМЯ ПЭТ.*

<SCRIPT language="JavaScript">

var heroGender, heroName, petType, petName;

heroGender = window.prompt('Is the hero female or male? Enter F or M', 'F');

heroName = window.prompt('What is the hero\'s name?','');

petType = window.prompt('What type of pet does the hero have?','');

petName = window.prompt('What is name of the pet?','');

  document.write('Once upon a time there was a ');

if (heroGender == ('F'))
{
    document.write('girl');
}
else 
{
    document.write('boy');
}

document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName '.''<BR>' +
                                    heroName + ' had a ' + petType + ' called ' + petName + '.');

</SCRIPT>

Ответы [ 6 ]

7 голосов
/ 18 мая 2011

Пока вы ждете книг!

Учитесь у Центр разработчиков Mozilla !

Пример:

Пример

Фиксированная версия

document.write(
    'Once upon a time there was a ' + heroGender + 
    ' named ' + heroName  + '.' + '<BR>' + heroName + 
    ' had a ' + petType + ' called ' + petName + '.');

Разбитая версия

Выотсутствовали до + символов.

document.write(
    'Once upon a time there was a ' + heroGender + 
    ' named ' + heroName /* + */ '.' /* + */ '<BR>' + heroName + 
    ' had a ' + petType + ' called ' + petName + '.');

Попробуйте использовать

  • Firefox и Firebug и его вкладку консоли (Hit F12)
  • IE9 и встроенная консоль (нажмите F12. Убедитесь, что консоль открыта, затем обновите).
  • Chrome и встроенную консоль (нажмите Ctrl + Shift + J)

Следить за сообщениями об ошибках.

Если это слишком много, попробуйте

window.onerror = function(e) {
  alert(e.message);
}

Вот "улучшенная" версия, соответствующая стандартам. Пример ссылки!

HTML:

<label> Your Hero's gender </label><input id="heroGender"/><br/>
<label> Your Hero's name </label><input id="heroName"/><br/>
<label> Your Hero's pet type </label><input id="petType"/><br/>
<label> Your Hero's pet name </label><input id="petName"/><br/>
<button> Make me a hero! </button>
<div id="output"></div>

JavaScript:

// make your hero when you press the button
document.getElementsByTagName("button")[0].addEventListener("click", function() {
    // get all the values from the text boxes
    var gender = document.getElementById("heroGender").value,
        name = document.getElementById("heroName").value,
        petType = document.getElementById("petType").value,
        petName = document.getElementById("petName").value;

    // set the text on your output.
    document.getElementById("output").textContent = 
        "Once upon a time there was a " + gender +
        " named " + name + ". " + name + " had a pet " + 
        petType + " called " + petName;


}, false);

Theприведенный выше код сломается для IE8 или менее :(. Заставить JavaScript работать в кросс-браузерном режиме - правильная задача.

Так что вы можете прочитать документацию для браузеров по адресу

Но их нелегко читать или перемещаться.Руководство по кросс-браузерному написанию сценариев - visibone BrowserBook .

В нем будет показана поддержка кросс-браузеров (красный - firefox, синий - IE):

enter image description here

Дайте ему несколько месяцев, и вы узнаете, как все это удобно использовать.

2 голосов
/ 18 мая 2011

Я думаю, что у вас есть некоторые опечатки в вашем окончательном документе. Пишите. У вас нет символа "+" после heroName ... и у вас есть несколько дублирующих документов.prite.

Вот то, что я считаю вашим окончательным кодом:

var heroGender, heroName, petType, petName;
heroGender = window.prompt('Is the hero female or male? Enter F or M', 'F');
heroName = window.prompt('What is the hero\'s name?','');
petType = window.prompt('What type of pet does the hero have?','');
petName = window.prompt('What is name of the pet?','');

if (heroGender == ('F')) { heroGender ='girl'; } else { heroGender = 'boy'; }
document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName + '. ' + heroName + ' had a ' + petType + ' called ' + petName + '.');
1 голос
/ 18 мая 2011
document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName **+** '.' **+** '<BR>' +
                                    heroName + ' had a ' + petType + ' called ' + petName + '.');

Я запустил его, добавив два +, которые я завернул в **

1 голос
/ 18 мая 2011

В этой строке есть синтаксическая ошибка:

document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName '.''<BR>' + heroName + ' had a ' + petType + ' called ' + petName + '.');

конкретно, здесь:

heroName '.''<BR>' + heroName

Если вы измените его на это, вы должны работать как положено:

document.write(' named ' + heroName + ' who had a ' + petType + ' called ' + petName + '.');

Обратите внимание, что я также удалил избыточность из первой части фразы, поскольку вы уже включили ее перед выражением "если 'F', то 'девушка'".

1 голос
/ 18 мая 2011

Слишком много кавычек и пропущенный плюс

Error: missing ) after argument list
Source File: http://fiddle.jshell.net/_display/
Line: 41, Column: 83
Source Code:
document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName '.''<BR>' + 

должно быть

document.write(' named ' + heroName + '.<BR>' + 
heroName + ' had a ' + petType + ' called ' + petName + '.');

http://jsfiddle.net/mplungjan/zHGsD/

0 голосов
/ 18 мая 2011

Проблема в вашей последней строке. Исправлено следующим образом

document.write('Once upon a time there was a ' + heroGender + ' named ' + heroName + '.' + '<BR>' + heroName + ' had a ' + petType + ' called ' + petName + '.');
...