Как мне сделать ajax навигацию при загрузке страницы? - PullRequest
0 голосов
/ 02 декабря 2009

У меня есть страница с несколькими отчетами, которые создаются с помощью вызовов ajax. На этой странице я являюсь фреймворком prototype.js для некоторых функций отображения.

Ссылки для каждого отчета имеют привязки / теги, такие как # Report1, # Report2 и т. Д., Которые являются ссылками с функциями onClick, которые выполняют большую работу по созданию отчета с помощью javascript.

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

Таким образом, если пользователь переходит к: http://mysite/myPage.jsp#Report2, он должен загрузить страницу и перейти ко 2-му отчету.

В любом случае, в моей загрузке страницы я могу посмотреть на якорь / ссылку и выполнить onlcick для этого якоря? Я думал, что смогу создать большое утверждение case / if, чтобы выяснить, что делать, но, возможно, был более простой способ.

1 Ответ

0 голосов
/ 02 декабря 2009

Все зависит от того, как на самом деле структурированы ваши Ajax-вызовы. Я делаю что-то подобное для открытия правильной вкладки в навигации по вкладкам. Код будет начинаться так: если вы дадите мне посмотреть, как подключены ваши Ajax-события, я смогу показать вам все остальное.

document.observe("dom:loaded", function() {
    if(window.location.hash){
      var report = window.location.hash.replace("#","");  
    }
});

EDIT

Глядя на ваш код, вы бы лучше (imv) переключились на ненавязчивый метод, где вы прикрепляете события к вашим элементам, например,

$('ele').observe('click',doStuff.bindAsEventListener($('ele')));

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...