Ребята, мне пришлось сегодня снова с этим бороться.Кажется, две вещи (приводящие к одному и тому же эффекту) приводили к неправильной работе IFrame
.
1) Мы используем элементы управления Telerik ASP.Net AJAX.Мои коллеги вызывали функцию на главной странице приложения, чтобы переместить ее на следующую или предыдущую страницу, например:
top.moveNext();
return false;
или
top.movePrevious();
return false;
, но они вызывали их в RADButton
's OnClientClicked
обработчик событий.Я изменил его так, чтобы он вызывался в обработчике OnClientClicking
, и отменил событие следующим образом:
function onNextClicking(s,a){
a.set_cancel(true);//stops event from propogating
top.moveNext();
}
Это позволило ему корректно работать со страницами, имеющими RADButton
s.
2) На некоторыхстраницы мы использовали простые button
элементы.Там они тоже возвращали false
после вызова методов из окна top
.Мы изменили эти кнопки на RADButtons
и обрабатываем шаги в обработчиках OnClientClicking
.Хотя кажется странным, что функция внутри страницы, уже загруженной в IFrame
, заставляет ее прекратить загрузку нового URL, если она возвращает false.