Konvertieren Sie Pseudo-Arrays in JavaScript in echte Arrays
In JavaScript sind die verborgenen variablen Argumente in der Funktion und das Element Set (Nodelist), das mit GetElementsByTagName erhalten wurde, keine realen Arrays, und Methoden wie Push können nicht verwendet werden. Wenn es einen solchen Bedarf gibt, können sie nur zuerst in echte Arrays umgewandelt werden.
Für Argumente können Sie Array.Prototype.slice.call (Argumente) verwenden. Um den Zweck der Konvertierung zu erreichen, aber für Nodelist wird es nicht funktionieren. Es wird einen Fehler in IE8 und unten melden. Es kann nur gesagt werden, dass sein JS -Motor einige Einschränkungen hat.
Wenn Sie Nodelist in ein echtes Array konvertieren müssen, müssen Sie daher einen Abwärtskompatibilitätsprozess durchführen.
Die Codekopie lautet wie folgt:
Funktion RealArray (c) {
versuchen {
return array.prototype.slice.call (c);
} catch (e) {
var ret = [], i = 0, len = C.Length;
für (; i <len; i ++) {
ret [i] = (c [i]);
}
Rückkehr;
}
}
JavaScript -Einstellung der Homepage -Funktion
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<title> JavaScript -Einstellungen "als Heimat" und "Favoriten" (kompatibel mit IE und Firefox -Browsern) </title>
<meta charset = "utf-8">
<script type = "text/javaScript">
Funktion sethomepage () {
if (document.all) {
/*Dh*/
document.body.Style.Behavior = 'url (#Standard#homepage)';
document.body.sethomepage (window.location.href);
} else if (window.sideBar) {
/*Ff*/
if (window.netscape) {
versuchen {
netscape.security.privileGemanager.EnablePrivilege ("UniversalXPConnect");
} catch (e) {
ALERT ("Dieser Vorgang wird vom Browser abgelehnt. Wenn Sie diese Funktion aktivieren möchten, geben Sie bitte über: Konfiguration in die Adressleiste ein und geben Sie dann das signierte Element ein.
}
}
var prefs = components.classes ['@mozilla.org/preferences-serd;
pefs.setcharpref ('browser.startup.homepage', window.location.href);
} anders {
/*Chrome oder andere*////
ALERT ("Ihr Browser unterstützt keine automatische Einstellung der Startseite. Bitte verwenden Sie das Browser -Menü, um es manuell einzustellen!").
}
}
</script>
</head>
<body>
<a onclick = "sethomepage ()" href = "javaScript: void (0);"> als Homepage festgelegt </a>
</body>
</html>
JavaScript -Sammlungsfunktion
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<title> Demo </title>
<meta charset = "utf-8">
<script src = "// code.jquery.com/jquery-1.11.0.min.js"> </script>
<script src = "// code.jquery.com/jquery-migrate-1.2.1.min.js"> </script>
<script type = "text/javaScript">
jQuery.fn.addfavorit = function (l, h) {
Gibt dies zurück.click (function () {
var t = jQuery (this);
if (jQuery.browser.msie) {
window.external.addfavorit (h, l);
} else if (jQuery.browser.mozilla || jQuery.browser.opera) {
t.attr ("rel", "Seitenleiste");
t.attr ("title", l);
t.attr ("href", h);
} anders {
Warnung ("Bitte verwenden Sie Strg+D, um diese Seite zu Ihren Favoriten hinzuzufügen!");
}
});
};
$ (function () {
$ ('#fav'). AddFavite (document.title, location.href);
});
</script>
</head>
<body>
<a href = "JavaScript:;" id = "fav"> Speichern Sie diese Seite </a>
</body>
</html>
Basierend auf JQuery können Sie es entsprechend Ihren Anforderungen ändern.
JavaScript erkennt, ob ein Element einen bestimmten Attributcode unterstützt
Die Codekopie lautet wie folgt:
Funktion Elementsupportsattribute (Element, Attribut) {
var test = document.createelement (Element);
if (Attribut im Test) {
zurückkehren;
} anders {
false zurückgeben;
}
};
Verwendung:
Die Codekopie lautet wie folgt:
if (ElementsupportsAttribute ("textarea", "Platzhalter") {
} anders {
// zurückgreifen
}
Namespaces erstellen und verwenden
Die Codekopie lautet wie folgt:
var Global = {};
Global.namespace = function (str) {
var arr = str.split ('.'), o = global;
für (k = (arr [0] == "global")? 1: 0; k <arr.length; k ++) {
o [arr [k]] = o [arr [k]] || {};
o = o [arr [k]];
}
}
Wie man benutzt
Die Codekopie lautet wie folgt:
Global.namespace ("Lang");
Global.lang.test = function () {
// todo
}
Das obige dreht sich alles um diesen Artikel, ich hoffe es gefällt euch.