jQuery - Wie kann ich push einen Wert in eine Globale array in IE und Firefox?

Edit: zumindest ein Teil des Problems war, weil history bereits vorhanden ist (und ich wusste nicht, dass). Vielen Dank, jeder.

Original:

Habe ich eine Funktion, das drückt den Wert eines <input> in eine zunächst leere globales array mit dem Namen history dann löscht die Eingabe.

Den code, um die push-Wert funktioniert gut in Chrome 21 und Opera 12, aber nicht im IE9 und Firefox 15.

Habe ich erforscht dies ein wenig und fand, dass, wenn das array war die lokale (erstellt im pr() anstelle von $(document).bereit als var history = []), funktionierte es gut. Ich habe auch versucht, deklarieren Sie Sie außerhalb der alles auf den Anfang der Datei.


IE-Fehler: SCRIPT438: Object doesn't support property or method 'push'

FF-Fehler: TypeError: history.push is not a function


Wie kann ich push den Wert auf eine leere Globale array in IE und Firefox?

Hier ist mein code:

<input type="text" id="command" />

Dann in meiner JS-Datei:

$(document).ready(function() {
    history = []; //no var because that makes it global, right?
)};

$(document).keypress(function(e) {  
    if(e.which == 13) { //if enter     
        e.preventDefault();

        if($("#command").val() !== "") {
            pr();
        }
    }
});

function pr() {
    var text = $("#command").val();

    text = text.replace(/<(?:.|\n)*?>/gm, "");    //these two are supposed to
    text = text.replace(/[<>]/gi, "");            //sanitize the input

    history.push(text); //this where it gets hairy
    alert(history); //doesn't display anything in IE/FF because .push failed

    //do a bunch of other stuff that isn't relevant
}

Vielen Dank im Voraus.

nennen Sie es etwas anderes als history.
Nicht sicher, ob Tippfehler, sondern $(document).ready(function() { ist nicht richtig geschlossen. Auch können Sie erklären etwas als global leicht von überall gehen Fenster.<Variablenname> = ...
Auch die Geschichte ist ein sehr schlechter name für Sie, wie die Geschichte ist bereits ein Objekt, das sehr wahrscheinlich das problem zu sein, benennen Sie es um so etwas wie scriptHistory
Ja, sorry, ist ein Tippfehler. Ich sehe, ich werde versuchen, etwas anderes ist als die Geschichte. Danke.
Es funktioniert jetzt, danke!

InformationsquelleAutor Abluescarab | 2012-09-18

Schreibe einen Kommentar