массивы javascript в Chrome и Internet Explorer

#javascript #internet-explorer

#javascript #internet-explorer

Вопрос:

У меня есть этот код, и он работал в Google Chrome, но он не работал в Internet Explorer.

 <html><head>
 <script type ="text/JavaScript">
<!--
function status()
{
    var text = newArray();
    text[0] = "Life is traveled only once..Today's moment becomes tomorrow's memory..Enjoy every moment; good, bad, happy, or sad;because the gift of life is LIFE itself";
    text[1] = "never design your character like a garden where any one can walk. but design your character like the sky, where everyone likes to reach you";
    text[2] = "Crying is never a symbol of weakness... From the time we are born, it has always been a sign that we are alive...";
    text[3] = "If you believe, you can achieve!";
    text[4] = "BELIEVE: To hope for the best, endure the stress, passing every test amp; accepting nothing less.";
    text[5] = "Never give up on your dreams and goals, if you do,your life end up no where.";
    text[6] = "The only thing that is guaranteed forever is your family... they will always be your family.. everything else can change.";
    var i = Math.floor(7*Math.random())
    var g=window.alert(text[i]);
    return g ;
}
//-->
</script>
</head></html>
  

Комментарии:

1. если вы покажете этот код, возможно, мы могли бы вам помочь!

2. попробуйте поискать в Интернете. Люди говорят, что есть информация, которую можно найти по всем видам тем. И что вы знаете? работает в chrome, работает не в ie, дает нам 33 миллиона результатов!

3. Код был там, poster не использовал форматирование кода, поэтому он был скрыт из-за тега script. Я исправил это вместе с неправильным написанием и структурой предложения. 🙂

4. Вы пропустили пробел между new и Array . Это просто опечатка?

Ответ №1:

newArray(); должно быть new Array(); или даже лучше, [] .

Кроме того, у вас не может быть разрывов строк внутри строк JavaScript — замените физические разрывы строк на n .

Также не имеет смысла возвращать возвращаемое значение alert() .

Комментарии:

1. большое спасибо .. но это не работает в Интернете explorer..it работал в Chrome…….

Ответ №2:

Для такого рода вещей литерал массива обычно является лучшим выбором:

 var text = [
    "Life is traveled only once..Today's moment becomes tomorrow's memory..Enjoy every moment; good, bad, happy, or sad;because the gift of life is LIFE itself",
    "never design your character like a garden where any one can walk. but design your character like the sky, where everyone likes to reach you",
    "Crying is never a symbol of weakness... From the time we are born, it has always been a sign that we are alive...",
    "If you believe, you can achieve!",
    "BELIEVE: To hope for the best, endure the stress, passing every test amp; accepting nothing less.",
    "Never give up on your dreams and goals, if you do,your life end up no where.",
    "The only thing that is guaranteed forever is your family... they will always be your family.. everything else can change."
];
  

Это создает новый массив с указанными вами элементами. Записи массива разделяются запятыми. После последней записи нет запятой (если вы поставите ее там, некоторые браузеры поместят постороннюю undefined запись в конец массива, потому что спецификация раньше была расплывчатой; теперь это не так, но у некоторых старых браузеров все еще есть проблема).

Я не помню, когда в последний раз мне действительно приходилось писать var a = new Array() (обратите внимание на пробел). Даже для пустого массива используйте var a = []; . Это не только короче, но и исключает возможность того, что Array (символ) был затенен.

Ответ №3:

Измените строку

 var g=window.alert(text[i]);
  

Для

 var g = text[i];
alert(g);
  

Ответ №4:

Правильный код — это: var text = new Array();

Ответ №5:

Я бы написал ваш код следующим образом:

 var status = function() {
    var text = [
        "Life is traveled only once..Today's moment becomes tomorrow's memory..Enjoy every moment; good, bad, happy, or sad;because the gift of life is LIFE itself"
        , "never design your character like a garden where any one can walk. but design your character like the sky, where everyone likes to reach you"
        , "Crying is never a symbol of weakness... From the time we are born, it has always been a sign that we are alive..."
        , "If you believe, you can achieve!"
        , "BELIEVE: To hope for the best, endure the stress, passing every test amp; accepting nothing less."
        , "Never give up on your dreams and goals, if you do,your life end up no where."
        , "The only thing that is guaranteed forever is your family... they will always be your family.. everything else can change."
    ], i = Math.floor(7*Math.random());
    alert(text[i]);
}