RoBorg корректен, но я хотел добавить примечание стороны.
В IE7/IE8, когда Microsoft добавила Вкладки к их браузеру, они повредили одну вещь, которая вызовет опустошение с Вашим JS, если Вы не будете осторожны.
Воображают этот макет страницы:
MainPage.html
IframedPage1.html (named "foo")
IframedPage2.html (named "bar")
IframedPage3.html (named "baz")
Теперь в кадре "baz" Вы нажимаете на ссылку (никакая цель, загрузки в кадре "baz"), это хорошо работает.
, Если страница, которая загружается, позволяет, называют его special.html, JS использования, чтобы проверить, имеет ли "это" родительский кадр, названный "панелью", это возвратит (ожидаемый) true.
Теперь позволяет, говорят, что страница special.html, когда она загружается, проверяет родительский кадр (для существования и его имени, и если это - "панель", она перезагружает себя в кадре панели. например,
if(window.parent && window.parent.name == 'bar'){
window.parent.location = self.location;
}
Пока неплохо. Теперь прибывает ошибка.
Позволяет, говорят вместо того, чтобы нажать на исходную ссылку как нормальный, и загрузить страницу special.html в кадре "baz", Вы щелкнули средней кнопкой по нему или приняли решение открыть его на новой вкладке.
, Когда та новая вкладка загружается ( без родительских кадров вообще! ) IE введет бесконечный цикл загрузки страницы! , потому что IE "копирует по" структуре кадра в JavaScript, таким образом, что новая вкладка ДЕЙСТВИТЕЛЬНО имеет родителя, и что родитель ИМЕЕТ имя "панель".
хорошие новости, то, что проверка:
if(self == top){
//this returns true!
}
, в котором новая вкладка действительно возвращает true, и таким образом можно протестировать на это нечетное условие.
А, повторяющиеся события - одна из проблем моей жизни, наряду с часовыми поясами. Ведение календаря сложно .
Вы можете смоделировать это в терминах RFC2445 . Однако это может дать вам гораздо больше гибкости - и сложности, чем вы действительно хотите.
Несколько вещей, которые следует учитывать:
Я понимаю, что это список вещей, над которыми нужно подумать, а не окончательный ответ, но я думаю, что это важно чтобы определить параметры вашей проблемы, прежде чем пытаться найти решение.
Я подумал, что повторяющиеся события должны генерироваться при сохранении исходного события с новой моделью. Это означает, что я не выполняю случайную обработку каждый раз при загрузке календаря (и это означает, что я также могу, например, отменить одно «Показать» в серии), но также означает, что я должен ограничить это определенным периодом времени, поэтому если бы кто-то ушел, скажем, через год в будущее, он бы не увидел эти повторяющиеся шоу. Но в какой-то момент их придется (потенциально) заново сгенерировать.