Вопрос по HTML, чтоб его...

User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Вопрос по HTML, чтоб его...

Post by Privet »

Всё очёнь просто. Код сильно упрощен, все не имеющие к логике проверки убраны.

Есть два radio: o Add o Remove (отмечен всегда только один из них)
Есть кнопка: [ Add ]
Если отмечен Add, то на кнопке пишется Add. Отмечен Remove - пишется Remove.

Работает замечательно, но есть одна задница. Если отметить Remove и перезагрузить страницу, то отмеченным остаётся Remove, а на кнопке надпись сбрасывается в Add.
казалось бы есть элементарное решение: прописать onload="modify()", но onload, как я понимаю, можно прописать только в body, а у меня туда доступа нет. Это ограничение технологии написания расширений для форума.

Есть какие-то другие варианты? Например, нельзя сделать так, что при перезагрузке страницы всегда будет отмечено Add?

Code: Select all

<script type="text/javascript">
	function modify()
	{
		var x = document.getElementById('addremove1');
		var v = document.getElementById('addbutton');

		if (x.checked)
			v.value = 'Add';
		else
			v.value = 'Remove';
	}
</script>

<form id="bz_add" method="post" action="{U_ACTION}">
<fieldset>
	<label for="addremove1" class="bz-add"><input type="radio" name="addremove" id="addremove1" value="1" checked="true" onchange="modify()" /> Add</label>
	<label for="addremove0" class="bz-remove"><input type="radio" name="addremove" id="addremove0" value="0" onchange="modify()" /> Remove</label>
</fieldset>
....

<fieldset class="submit-buttons">
	<input type="submit" name="addsubmit" value="Add" id="addbutton" class="button1" />
</fieldset>
</form>
Привет.
User avatar
ie
Уже с Приветом
Posts: 11092
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Вопрос по HTML, чтоб его...

Post by ie »

Privet wrote: 14 Nov 2018 21:32 Всё очёнь просто. Код сильно упрощен, все не имеющие к логике проверки убраны.

Есть два radio: o Add o Remove (отмечен всегда только один из них)
Есть кнопка: [ Add ]
Если отмечен Add, то на кнопке пишется Add. Отмечен Remove - пишется Remove.

Работает замечательно, но есть одна задница. Если отметить Remove и перезагрузить страницу, то отмеченным остаётся Remove, а на кнопке надпись сбрасывается в Add.
казалось бы есть элементарное решение: прописать onload="modify()", но onload, как я понимаю, можно прописать только в body, а у меня туда доступа нет. Это ограничение технологии написания расширений для форума.

Есть какие-то другие варианты? Например, нельзя сделать так, что при перезагрузке страницы всегда будет отмечено Add?

Code: Select all

<script type="text/javascript">
	function modify()
	{
		var x = document.getElementById('addremove1');
		var v = document.getElementById('addbutton');

		if (x.checked)
			v.value = 'Add';
		else
			v.value = 'Remove';
	}
</script>

<form id="bz_add" method="post" action="{U_ACTION}">
<fieldset>
	<label for="addremove1" class="bz-add"><input type="radio" name="addremove" id="addremove1" value="1" checked="true" onchange="modify()" /> Add</label>
	<label for="addremove0" class="bz-remove"><input type="radio" name="addremove" id="addremove0" value="0" onchange="modify()" /> Remove</label>
</fieldset>
....

<fieldset class="submit-buttons">
	<input type="submit" name="addsubmit" value="Add" id="addbutton" class="button1" />
</fieldset>
</form>
Кагда вы чекаете addremove1 он никуда не сохраняется, так?
1. если сохраняется то от туда и надо плясать.
2. если не сохраняется то надо сохранить и делать п.1
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

ie wrote: 14 Nov 2018 21:39 ... Кагда вы чекаете addremove1 он никуда не сохраняется, так?
1. если сохраняется то от туда и надо плясать.
2. если не сохраняется то надо сохранить и делать п.1
Никакого другого кода, который обрабатывал бы эти radio нет. Это абсолютно точно. Мне вообще непонятно почему состояние radio сохраняется. Я бы ожидал, что они встанут в исходное состояние, но, тем не менее...
Привет.
Palych
Уже с Приветом
Posts: 13976
Joined: 16 Jan 2001 10:01

Re: Вопрос по HTML, чтоб его...

Post by Palych »

А URL меняется при перезагрузки страницы?
User avatar
John Smith
Уже с Приветом
Posts: 1679
Joined: 04 Oct 2006 23:30
Location: Las Vegas

Re: Вопрос по HTML, чтоб его...

Post by John Smith »

https://stackoverflow.com/questions/299 ... g-the-page

фаервокс слишком умный, в хроме все пучком
User avatar
Ion Tichy
Уже с Приветом
Posts: 13460
Joined: 07 Dec 2004 04:00
Location: Москва->CO

Re: Вопрос по HTML, чтоб его...

Post by Ion Tichy »

Privet wrote: 15 Nov 2018 02:25
ie wrote: 14 Nov 2018 21:39 ... Кагда вы чекаете addremove1 он никуда не сохраняется, так?
1. если сохраняется то от туда и надо плясать.
2. если не сохраняется то надо сохранить и делать п.1
Никакого другого кода, который обрабатывал бы эти radio нет. Это абсолютно точно. Мне вообще непонятно почему состояние radio сохраняется. Я бы ожидал, что они встанут в исходное состояние, но, тем не менее...
кэш?
Как же это вы без гравицаппы пепелац выкатываете из гаража? Это непорядок...
User avatar
John Smith
Уже с Приветом
Posts: 1679
Joined: 04 Oct 2006 23:30
Location: Las Vegas

Re: Вопрос по HTML, чтоб его...

Post by John Smith »

add autocomplete="off" в form element - и проблема будет решена
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

Palych wrote: 15 Nov 2018 02:40 А URL меняется при перезагрузки страницы?
Нет, конечно...
Привет.
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

John Smith wrote: 15 Nov 2018 03:13 https://stackoverflow.com/questions/299 ... g-the-page

фаервокс слишком умный, в хроме все пучком
Точно! В Хроме всё ок. Ну, такой задницы я не ожидал. Спасибо!
Привет.
User avatar
Homa Brut
Уже с Приветом
Posts: 851
Joined: 14 Sep 2016 21:33
Location: Illinois

Re: Вопрос по HTML, чтоб его...

Post by Homa Brut »

Поставте функцию modify() в body тeг на onload

<body onload="modify()">
Да и фиг с ним с апокалипсисом, просто глядя на то что творится вокруг, оформилось стойкое убеждение что лучше быть живым параноиком, чем мертвым идеалистом, если вдруг что...
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

Homa Brut wrote: 15 Nov 2018 06:16 Поставте функцию modify() в body тeг на onload

<body onload="modify()">
Не могу. Я ведь написал об этом в самом первом сообщении. Это код расширения для форума. Для его написания используется специальная "технология", чтоб рага выросли у того, кто её придумал. Код самого форума не меняется ни в единой строке (теоретически), а код расширения содержит, скажем так, вставки в определённые места.
Привет.
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

Прикол ещё в том, что это не статический файл, а php скрипт. Он вставляет заголовок?

Code: Select all

Cache-Control:	no-cache
Т.е. кэша там нет по определению.
Разумеется, кэш и всю историю чистил даже перед самой перезагрузкой.
Привет.
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

Я езё не профи в настройках nginx. Может, кто поможет.
В настройках конкретного сайта есть такой код:

Code: Select all

location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ @rewriteapp;
}

location @rewriteapp {
    rewrite ^(.*)$ /app.php/$1 last;
}
Согласно рекоммендации, я хочу добавить заголовок:

Code: Select all

Cache-Control "no-store";
Пытался вставить его так:

Code: Select all

location @rewriteapp {
    rewrite ^(.*)$ /app.php/$1 last;
    add_header Cache-Control "no-store";
}
Или добавлял ещё один location:

Code: Select all

location /app.php {
    add_header Cache-Control "no-store";
}
Заголовок не появляется.

Адрес страницы:
https://test_phpbb/app.php/bzban/4?post_id=606&sid=6b7d00c5ff746849ce5bа3db82bab54a

Как можно догадаться, это не реальный url или uri, а туфта, связанная с этой дурацкой "технологией". Скрипт, который реально получает запрос, получает его через систему роутинга, которая поддерживается на языке yml. Как это конкретно реализовано мне разбираться совсем не хочется. Во всяком случае, никаких больше запросов к другим php скриптам в логе нет. Т.е. доступ к ним идёт "изнутри" app.php через этот дебильный "роутинг".
"Дебильный" потому, что создаёт многоэтажную конструкцию с привлечением разных языков программирования, создаёт кучу непоняток, нестыковок и ограничений. Знали бы вы сколько проблем это до сих пор создаёт при обновлениях!
Привет.
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

Влепил я этот no-store, но бестолку. Всё тоже самое. Что-то крутое туда влепили. Хоть бы подумали зачем.
Привет.
User avatar
ie
Уже с Приветом
Posts: 11092
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Вопрос по HTML, чтоб его...

Post by ie »

Privet wrote: 15 Nov 2018 09:40 Влепил я этот no-store, но бестолку. Всё тоже самое. Что-то крутое туда влепили. Хоть бы подумали зачем.
можно еще попробовать

<script>
...
your code here
...
</script>

гденть в конце html
User avatar
John Smith
Уже с Приветом
Posts: 1679
Joined: 04 Oct 2006 23:30
Location: Las Vegas

Re: Вопрос по HTML, чтоб его...

Post by John Smith »

а к <form> доступ есть? если есть, то <form ... autocomplete=”off”> вроде как убирает это поведение. или нужен autocomplete на этой форме?
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

John Smith wrote: 15 Nov 2018 13:44 а к <form> доступ есть? если есть, то <form ... autocomplete=”off”> вроде как убирает это поведение. или нужен autocomplete на этой форме?
Да, есть, ведь это мой код, который вставляется в общий код. К сожалению, не работает. Это касается, мне кажется, другой функциональности, но я не силён в html.
Привет.
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

ie wrote: 15 Nov 2018 13:30
Privet wrote: 15 Nov 2018 09:40 Влепил я этот no-store, но бестолку. Всё тоже самое. Что-то крутое туда влепили. Хоть бы подумали зачем.
можно еще попробовать

<script>
...
your code here
...
</script>

гденть в конце html
Идею понял. Надо обязательно куда-то вниз? Я могу только в конец своего кода поместить. Добавил в ту же script-секцию. Не работает.

Code: Select all

document.getElementById('addremove1').checked = 'true';
document.getElementById('addremove0').checked = 'false';
Надеюсь, правильно? Переместил вниз - не помогает.

Ну, надо же. Придумали этот html/http специально так, чтобы никакие переменные между сессиями не сохранялись. Потом начали строить обходные пути, например, в виде злобных кукисов, а некоторые ещё и браузер подкрутили, но всё равно - нет надёжных путей по надёжной инициализации детерминированных состояний. Соответственно, многопоточная обработка в приложениях остаётся крайне затруднена. В Джаве вставали на уши по этому поводу. Я так и не знаю как оно сейчас. Господь миловал от встречи с этим счастьем.
Привет.
User avatar
ie
Уже с Приветом
Posts: 11092
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Вопрос по HTML, чтоб его...

Post by ie »

Privet wrote: 15 Nov 2018 19:02
ie wrote: 15 Nov 2018 13:30
Privet wrote: 15 Nov 2018 09:40 Влепил я этот no-store, но бестолку. Всё тоже самое. Что-то крутое туда влепили. Хоть бы подумали зачем.
можно еще попробовать

<script>
...
your code here
...
</script>

гденть в конце html
Идею понял. Надо обязательно куда-то вниз? Я добавил в ту же script-секцию. Не работает.

Code: Select all

document.getElementById('addremove1').checked = true;
document.getElementById('addremove0').checked = false;
Надеюсь, правильно?
если не работает то скорее всего не заработает. :?

эта страница доступна в сети? чуствую чего-то вы не договариваете :roll:
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

ie wrote: 15 Nov 2018 19:07 ...
эта страница доступна в сети? чуствую чего-то вы не договариваете :roll:
Это форма бана. Если доделаю, она будет доступна только модераторам. Сейчас я работаю на локальном сайте.
Выложить отдельно эту страницу - не реально. Попробую сохранить source и опубликовать.
Привет.
User avatar
BronenosezPotemkin
Уже с Приветом
Posts: 3008
Joined: 28 Feb 2013 03:18
Location: NY

Re: Вопрос по HTML, чтоб его...

Post by BronenosezPotemkin »

Del
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

Это последняя версия. В ней некоторые не принципиальные изменения. Скинул как есть. Подправил только ссылки на css.
hbz.html

Можно даже локально сохранить и экспериментировать.
Напомню, что фокус работает только в firefox, а в edge другая проблема - если нажать что-то кроме Ban, то при обновлении страницы все radio оказываются неотмеченными, что тоже задница.

Секция, доступная для изменения обозначена BZ_BEGIN - BZ_END

P.S. Только не забаньте, пожалуйста, никого.
Привет.
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

ie wrote: 15 Nov 2018 13:30
Privet wrote: 15 Nov 2018 09:40 Влепил я этот no-store, но бестолку. Всё тоже самое. Что-то крутое туда влепили. Хоть бы подумали зачем.
можно еще попробовать

<script>
...
your code here
...
</script>

гденть в конце html
Поместил такой код после формы в самый конец доступного кода.

Code: Select all

<script>
	document.getElementById('banunbanex0').checked = 'true';
</script>
ЗАРАБОТАЛО!!!

Спасибо большое! Эта хрень отняла у меня практически один день!
Привет.
User avatar
ie
Уже с Приветом
Posts: 11092
Joined: 15 May 2002 02:09
Location: Boston, MA

Re: Вопрос по HTML, чтоб его...

Post by ie »

Privet wrote: 15 Nov 2018 20:37 ЗАРАБОТАЛО!!!
:great:
User avatar
Privet
Администратор
Posts: 17505
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Re: Вопрос по HTML, чтоб его...

Post by Privet »

Кстати, в Edge тоже работает! :good:
Привет.

Return to “Вопросы и новости IT”