Инициировать событие в javascript до завершения загрузки объектов - PullRequest
0 голосов
/ 24 сентября 2011

Я пытался написать глобальную функцию JavaScript, которая переопределяет любой объект HTML (img, iframe, ссылки и т. Д.) До его загрузки страницей. Цель действия overiding состояла в том, чтобы изменить SRC и HREF этих объектов, используя DOM, на любую другую ссылку.

К сожалению, я не нашел никакого решения для этого, не загрузив сначала объект, а только затем изменив его с помощью события onload.

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

Я был бы рад, если бы кто-то мог поделиться своим опытом и помочь мне решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2011

Если вы пытаетесь изменить элементы, которые существуют в статическом HTML страницы, вы не можете изменять их с помощью JavaScript, пока они не будут успешно загружены браузером.Нет способа изменить их до этого.Они могут или не могут быть видны зрителю, прежде чем у вас есть возможность изменить их.

Чтобы решить эту проблему, есть несколько вариантов.

  1. Поместите на страницу правила стиля CSS, в результате чего все элементы, которые вы хотите изменить, будут изначально скрыты, а затем ваш javascript может изменить их, а затем показать их, чтобы они не были видны до вашей модификации.
  2. Не помещайте элементы, которые вы хотите изменить, в статическую часть вашей HTML-страницы.Вы можете либо создать их программно с помощью javascript и вставить их на страницу, либо вы можете загрузить их через ajax, изменить их после загрузки через ajax и затем вставить их на страницу.

Для обоихСценарии, вам придется разработать запасной план, если JavaScript не включен.

0 голосов
/ 24 сентября 2011

JavaScript работает только в DOM.

Однако вы можете загрузить страницу через AJAX, получить содержимое и выполнить любые манипуляции со строками.

...