onchange не запоминает выбор в option select
<center> <iframe name='film_main' id='film_main' src='{THEME}/images/tv.png' width='800' height='500' frameborder='0'></iframe> <br> <select size='1' onchange="javascript:if(document.getElementById('film_main')) document.getElementById('film_main').src=this.value;"> <option selected='selected' value='{THEME}/images/tv.png'>Выберите серию </option> <option value="адрес фрейма1">01. Серия</option> <option value="адрес фрейма2">02. Серия</option> </select> </center> Строчка в коде номер 5 - работает прекрасно. она подгружает в строчку 2 то что в строках 8 и 9 (value="") Но я не могу дописать к onchange - window.location.reload() так чтобы после перезагрузки страницы выбор сохранился. например выбрали серию 2 - перезагрузилась страница - затем установка в ифрейм url серии 2. очень нужна перезагрузка. перепробовала комбинировать код 30 способами - у меня не вышло. может нужен метод какой-то.. все еще учусь с яваскриптом. |
Нужно использовать не location.reload(), а установку location нужной ссылки, например:
window.location = 'http://example.com/' |
Да, верно, но дело в том что я не создаю для каждой серии отдельную страницу, дабы избежать дублирования в индексации.
создаю одну страницу, описание, постер, и этот кусок кода с списоком серий. серии переключаются на месте без перезагрузки страницы.при выборе серии в iframe подгружается определеный код вставки видео.то есть путь к фрейму. это все отлично. необходимо только чтоб при выборе страница ПЕРЕЗАГРУЗИЛАСЬ и сохранился выбор. т.е. перезагрузка необходима для накручивания счетчика показа рекламы. никак не могу дописать к ohchange нужное.... в противном случае придется делать для каждой серии свою страничку а в переключатель вставить window.location = 'http://example.com/'.... |
Создать отдельную страницу не обязательно. Достаточно в адрес страницы передать: либо get-параметры, либо #hash и работать уже с ними. Механиз будет тот же, через window.location = .
|
Ррррррррррр.. сканирую все страницы в выдаче гугла по запросу get window.location.. Как найду - поделюсь решением. спасибо бро
|
WorM32,
не получается. сможешь сделать для меня за 100 рублей, пойдет вам на пиво? :yes: |
Не очень ясна задача... нужно кодом из iframe перезагружать родительский документ? Или запоминать выбранный ролик?
Если первое, то parent.location.reload(); Запомнить выбранный ролик можно через cookie или WebStorage. WebStorage позволяет единоразово хранить большие объемы информации, но поддерживается лишь в современных браузерах. |
Erolast,
http://jsfiddle.net/rfsa5/20/ посмотрите как это работает. при выборе серии - урл подгружается в ифрейм без перезагрузки страницы. необходимо чтобы при выборе серии было тоже самое - только с обновлением всей страницы + подзагрузка урл в фрейм. наверное подойдет ваше решение "Запомнить выбранный ролик можно через cookie" |
Я правильно понимаю, что нужно что-то типа этого http://jsfiddle.net/rfsa5/25/
var select = document.getElementById('select_film'), frame = document.getElementById('film_main'); function onSelectFilmChange () { var value = this.value; saveFilm(value); window.location.reload(); } function saveFilm(url) { localStorage.setItem('film_url', url); } function getFilm () { return localStorage.getItem('film_url') || ''; } $(function () { var film = getFilm(); if (!film) { return; } var options = select.options; for (var i = 0, l = options.length; i < l; i++) { if (options[i].value == film) { select.selectedIndex = i; } } }); select.addEventListener('change', onSelectFilmChange, false); |
Лучше таки через куки, везде работать будет - http://learn.javascript.ru/play/Th3LB.
И да, window.onload, как я написал - это плохо. В текущем виде скрипт будет ждать полной загрузки страницы, включая изображения, что не нужно. Выполняться он должен после загрузки DOM, просто кроссбраузерно и без использования сторонних библиотек это заняло бы довольно много строк, для примера-то. |
Часовой пояс GMT +3, время: 10:05. |