Многие ошибки появляются, когда я запускаю jslint основной части вашего кода. Множество мелочей, например пропущенные точки с запятой. Другие вещи, такие как присвоение имени переменной «class», которая является зарезервированным словом в JavaScript, могут быть проблемой.
У вас есть некоторая логика, которая может быть лучше обработана с использованием реальных идиом jQuery. Например, вы делаете:
var class = $(this).attr("class");
class = class.substr(5);
var ext
if ( class == "ccm" ) {
ext = "cultureconquest.com";
}
if ( class == "gmail" ) {
ext = "gmail.com";
}
В jQuery есть метод для проверки того, содержит ли элемент класс, hasClass()
var ext;
if ($(this).hasClass("ccm")) {
ext = "cultureconquest.com";
}
if ($(this).hasClass("gmail")) {
ext = "gmail.com";
}
Я также заметил, что вы используете расширение livequery()
для jQuery. Эквивалентный метод live()
был добавлен в jQuery 1.3. Подробнее см. live()
.
Это несколько вещей, на которые стоит посмотреть. Если вы сможете заставить свой код пройти тест jslint, держу пари, вы во многом добьетесь того, чтобы он работал в Safari.