2014-02-06 3 views
0

У меня есть 4 файла html и 4 файла javascript. Каждый Java-файл загружается снаружи от каждого файла HTMLaddEventListener load on ajax load БЕЗ jQuery

index.html нагрузок javascript.js 1.html нагрузок javascript1.js 2.html нагрузок javascript2.js 3.html нагрузок javascript3.js

The проблема в том, что index.html использует AJAX для загрузки одной из трех других страниц при нажатии определенной кнопки. Тогда то, что должно произойти, заключается в том, что конкретная страница загрузит свою собственную соответствующую программу javascript, которая в конце этой программы содержит window.addEventListener, которая должна работать на «нагрузке» и запускать функцию «registerListeners». RegisterListeners затем регистрирует прослушиватель событий на кнопке на этой странице, в которой currentyl просто отображает предупреждение для тестирования.

Я понял, что параметр «load» для window.addEventLisener не работает, когда страница загружается динамически с помощью ajax.

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

Это домашнее задание, поэтому мне нужно указать в правильном направлении, чтобы сделать это с помощью html5 и javascript WITHOUT jquery. Я понимаю, что с jquery может быть проще, но мне нужно выяснить, как это сделать, пока пока нет.

Будет ли такая вещь, как window.addEventListener ("AJAXload", someFunction(), false) ???

+1

Вы можете изменить суб-HTML-файлы для вызова родительской функции? Являются ли подстраницы использующими AJAX или родителями, использующими AJAX для их добавления? Добавляются ли они в DIV или iFrame? http://stackoverflow.com/questions/5968300/how-do-i-fire-an-event-when-document-readystate-is-complete – CubanAzcuy

+0

Подстраницы не вызывают ajax, просто загружая скрипт, который имеет вызов вызова window.addEventListener. Они загружаются в div. –

+0

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

ответ

1

Вместо того, чтобы добавлять слушателя событий программно, вы можете вставить в JQuery полезную функцию в конце содержимого AJAX. Это будет выполняться при загрузке содержимого, вызывая что-то в родительском окне.

AJAX BLAH BLAH BLAH 
<script type="text/javascript"> 
    childContentLoaded(); //or whatever you need 
</script> 

вам может понадобиться добавить «родительский» .functionName()

+0

Значит, это будет на одной из загружаемых страниц html? Это действительно имеет смысл. Функция, которую он пытается запустить, вызывается ли она из javascript, отмеченного в начале загруженной страницы ajax или с родительской страницы? Это должно быть из javascript, загружаемого страницей ajax в голове. Если это так, это должно сработать. –

+0

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

+0

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