кросс-браузер Onunload и Onbeforeunload? (особенно опера 11) - PullRequest
7 голосов
/ 13 января 2011

У меня есть форма, и я должен заметить пользователя с функцией alert () при выходе из страницы, когда в форме есть данные, которые не были отправлены.

Я читал, что у Opera много проблемэтот.Opera 11, то есть, потому что мне нужно учитывать только последнюю версию.

Итак, снова, предупреждение должно отображаться при обновлении, закрытии вкладки или закрытии всего браузера.Было бы неплохо установить событие непосредственно для элемента <form>, который будет запускаться для всего, что приводит к уничтожению этого элемента.

Ответы [ 4 ]

19 голосов
/ 14 января 2011

Opera пока не поддерживает загрузку. Поддержка Opera по загрузке неполная - например, она не срабатывает при закрытии вкладки или закрытии Opera. Насколько я знаю, вы можете использовать onunload для отображения предупреждения, если пользователь щелкает ссылку, чтобы перейти со страницы с несохраненной формой, но вы не можете предотвратить навигацию при возникновении события unload.

То, что я хотел бы сделать здесь, - это прослушивать событие onbeforeunload, заставить его работать в других браузерах и ждать, пока Opera не догонит его. Будет ли это в Opera 12, 13 или 15, я не знаю, но когда реализован onbeforeunload, он будет работать так же, как и в других браузерах.

1 голос
/ 12 мая 2014

onbeforeunload теперь поддерживается начиная с Opera 15!

1 голос
/ 13 января 2011

Disable Close пока не поможет, так как Opera не поддерживает window.onbeforeunload на данный момент. Это будет поддерживаться в некоторых будущих версиях. На данный момент Opera 11 не реализует его.

0 голосов
/ 20 сентября 2011

Среда JQuery - это только сжатый язык Javascript, поэтому она полностью зависит от используемого браузера, никакой магии здесь.

...