У меня есть iFrame, загруженный на сайт, и в iFrame есть многоэтапная форма, когда пользователь нажимает кнопку «Следующий шаг», расположенную в нижней части каждого шага формы, веб-сайт прослушивает сообщениеразмещен на веб-сайте, а затем должен прокрутить пользователя до начала следующего шага.
Код, который я должен обработать, работает на некоторых веб-сайтах, но не на других, в том смысле, что, хотя данныеТочно так же, пользователь не прокручивается вверх, версии jQuery одинаковы, версия 1.2.x, и на обоих сайтах используется стандарт HTML5, следующий код реплицируется на два веб-сайта, один позволит пользователю прокручиватьв верхнюю часть страницы при нажатии кнопки следующего шага, тогда как другой сайт с тем же кодом не прокручивает пользователя.
Если я добавлю html
в дополнение к body
к animate
Функция тогда она работает, но я спрашиваю, почему это будет работать для одного, а не для другого, я что-то упустил в моем JS:
// Create IE + others compatible event handler
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
// Listen to message from child window
eventer(messageEvent,function(e) {
var str = e.data.toString();
if (str.includes('scroll-')) {
var scroll = str.replace('scroll-', '');
$('body').animate({scrollTop: (parseInt(scroll) + 96)});
}
},false);
для справки, scroll-
будет содержать число, например: scroll-500
, и оно будет преобразовано в число.
ОБНОВЛЕНИЕ
Похоже, влияет на пользователей iOS?