Преобразовать псевдо-арайры в JavaScript в истинные массивы
В JavaScript скрытые аргументы переменной в функции и набор элементов (Nodelist), полученные с помощью GetElementsBytagName, не являются реальными массивами, и такие методы, как Push, не могут быть использованы. Когда есть такая потребность, их можно сначала преобразовать только в настоящие массивы.
Для аргументов вы можете использовать array.prototype.slice.call (аргументы); Для достижения цели преобразования, но для Nodelist это не сработает. Он сообщит об ошибке в IE8 и ниже. Можно только сказать, что его двигатель JS имеет некоторые ограничения.
Поэтому, если вам нужно преобразовать Nodelist в реальное массив, вам необходимо сделать процесс совместимости вниз.
Кода -копия выглядит следующим образом:
Функция realarray (c) {
пытаться {
return array.prototype.slice.call (c);
} catch (e) {
var ret = [], i = 0, len = c.length;
for (; i <len; i ++) {
ret [i] = (c [i]);
}
возврат возврата;
}
}
Функция домашней страницы JavaScript
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<Title> Настройки JavaScript «Установка как дома» и «Фавориты» (совместим с IE и Firefox Browsers) </title>
<meta charset = "utf-8">
<script type = "text/javascript">
function sethomepage () {
if (document.all) {
/*Т.е.*/
document.body.style.behavior = 'url (#по умолчанию#homepage)';
document.body.sethomepage (window.location.href);
} else if (window.sidebar) {
/*Ff*/
if (window.netscape) {
пытаться {
netscape.security.privilegemanager.enableprivilege ("UniversalxpConnect");
} catch (e) {
ALERT («Эта операция отклоняется браузером. Если вы хотите включить эту функцию, пожалуйста, введите о: config в адресную строку, а затем введите значение itemed.applets.codebase_principal_support в true»);
}
}
var prefs = components.classes ['@mozilla.org/preferences-service;1'5.getservice(components.interfaces.nsiprefbranch);
prefs.setcharpref ('browser.startup.homepage', window.location.href);
} еще {
/*хром или другой*/
Alert («Ваш браузер не поддерживает автоматическую настройку домашней страницы, используйте меню браузера, чтобы установить его вручную!»);
}
}
</script>
</head>
<тело>
<a onclick = "sethomepage ()" href = "javascript: void (0);"> Установить как домашняя страница </a>
</body>
</html>
Функция сбора JavaScript
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<title> Демо </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.addfavorite = function (l, h) {
вернуть this.click (function () {
var t = jQuery (это);
if (jquery.browser.msie) {
window.external.addfavorite (h, l);
} else if (jquery.browser.mozilla || jquery.browser.opera) {
t.attr ("rel", "боковая панель");
t.attr ("Title", L);
t.attr ("href", h);
} еще {
Alert («Пожалуйста, используйте Ctrl+D, чтобы добавить эту страницу в ваши любимые!»);
}
});
};
$ (function () {
$ ('#fav'). addfavite (document.title, location.href);
});
</script>
</head>
<тело>
<a href = "javascript:;" id = "fav"> Сохраните этот сайт </a>
</body>
</html>
Основываясь на jQuery, вы можете изменить его в соответствии с вашими потребностями.
JavaScript обнаруживает, поддерживает ли элемент определенный код атрибута
Кода -копия выглядит следующим образом:
функция elementsupportSattribute (element, attribute) {
var test = document.createElement (element);
if (атрибут в тесте) {
вернуть истину;
} еще {
вернуть ложь;
}
};
Использование:
Кода -копия выглядит следующим образом:
if (elementsupportsattribute ("textarea", "Placeholder") {
} еще {
// отступать
}
Создать и использовать пространства имен
Кода -копия выглядит следующим образом:
var global = {};
Global.namespace = function (str) {
var arr = str.split ('.'), o = global;
for (k = (arr [0] == "global")? 1: 0; k <arr.length; k ++) {
o [arr [k]] = o [arr [k]] || {};
o = o [arr [k]];
}
}
Как использовать
Кода -копия выглядит следующим образом:
Global.namespace ("lang");
Global.lang.test = function () {
// Тодо
}
Выше приведено в этой статье, надеюсь, вам понравится.