jQuery - как получить / прочитать свойство css в псевдоклассе: hover

Я работаю над предварительным загрузчиком изображений, который будет предварительно загрузить все изображения на странице. Мой подход следующий:

onDomReady, loop through $ ("*") // пройти через все элементы, когда DOM готова

  • if $ (this) .tagName. toLowerCase () == 'img' , прочитать атрибут src и предварительно загрузить это изображение
  • else if $ (this) .css ("background-image")! = " none ", прочтите опцию background-image и предварительно загрузите это изображение

Моя проблема в том, что этот подход не учитывает класс: hover, который обычно является изображением, которое в любом случае необходимо предварительно загрузить.

Я бы хотел, чтобы во время цикла по всем элементам я мог проверять существование псевдокласса: hover, а затем проверять наличие свойства "background-image" в этом классе.

Я действительно хотел бы придерживаться этого подхода, так как он: а) позволяет мне не указывать явно каждое изображение, которое я хочу предварительно загрузить, и б) заботится об относительных путях в CSS, как чтение " Похоже, что на этот вопрос для Rails 3 нет ответа, так что вот: ...

Мне не удалось найти работоспособное решение этой проблемы, несмотря на несколько похожих вопросов здесь и в других местах. Кажется вероятным, что на этот вопрос для Rails 3 не было дано ответа, поэтому здесь:

У меня есть приложение, которое в настоящее время позволяет пользователям создавать свой собственный поддомен, содержащий их экземпляр приложения. В то время как в Rails 2 вас лучше всего обслуживали с помощью гема subdomain-fu, в версии 3 это значительно проще, согласно Railscast - http://railscasts.com/episodes/221-subdomains-in-rails-3 .

Это хороший материал, но я также хочу предоставить пользователям возможность связывать собственное доменное имя со своей учетной записью. Итак, хотя у них может быть http://userx.mydomain.com , я Я бы хотел, чтобы они также выбрали ассоциированный http://userx.com .

Я нашел несколько ссылок на то, чтобы сделать это в Rails 2, но эти методы, похоже, больше не работают ( особенно этот: https://feefighters.com/blog/hosting-multiple-domains-from-a-single-rails-app/ ).

Может ли кто-нибудь порекомендовать способ использования маршрутов для приема произвольного домена и передачи его контроллеру, чтобы я мог показать соответствующий контент?

Обновление : я получил большую часть ответа, спасибо на своевременный ответ Леонида и свежий взгляд на код. В конечном итоге потребовалось дополнить существующий код субдомена, который я использовал (из решения Railscast), а затем добавить немного в routes.rb. Я еще не дошел до конца, но я хочу опубликовать то, что у меня есть.

В lib / subdomain.rb:

class Subdomain
  def self.matches?(request)
    request.subdomain.present? && request.subdomain != "www"
  end
end

class Domain
  def self.matches?(request)
    request.domain.present? && request.domain != "mydomain.com"
  end
end

Я добавил второй класс в имитацию первого, заведомо работающего. Я просто добавляю условие, которое гарантирует, что входящий домен не является тем, для которого я размещаю основной сайт.

Этот класс используется в routes.rb:

require 'subdomain'
constraints(Domain) do
  match '/' => 'blogs#show'
end

constraints(Subdomain) do
  match '/' => 'blogs#show'
end

Здесь я добавляю существующий код поддомена (опять же, все работает нормально) со строфой для проверки домена. Если этот сервер отвечает этому домену, а не тот, в котором работает основной сайт, переадресуйте его указанному контроллеру.

И хотя это, похоже, работает, у меня еще не все работает, но я думаю, что эта конкретная проблема решена.

86
задан Dave Powers 16 August 2019 в 04:19
поделиться