Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отображение / скрытие формы через UTM (https://javascript.ru/forum/misc/69360-otobrazhenie-skrytie-formy-cherez-utm.html)

aalegz 17.06.2017 00:00

Отображение / скрытие формы через UTM
 
Задача состоит в том, что бы в зависимости от параметра, прописанного в UTM форма на сайте отображалась или скрывалась. В JS совсем ничего не понимаю, поэтому пишу почти наугад. Просьба знатоков подсказать решение данной проблемы. На данный момент вариант такой:

Ссылка: https://www.example.com/?utm_source=mywebsite

Решение:

header form#al-form {
    if (source == mywebsite){
    display: none;
    } else {
        display: inline-block;
    }
    position: relative;
    width: 320px;
    background: #50251a;
    padding: 25px 25px 40px;
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;


Оригинальный код:

header form#al-form {
    display: inline-block;
    position: relative;
    width: 320px;
    background: #50251a;
    padding: 25px 25px 40px;
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;


Огромное спасибо за ответы.

j0hnik 17.06.2017 00:17

<head>
	<meta charset="utf-8">
</head>
<body>
	<script>
	var a = location.href.split("=");
	if (a[a.length - 1] == "mywebsite") document.getElementById("al-form").style.display = 'none';
	</script>
</body>


не советую :no:

aalegz 17.06.2017 00:29

Цитата:

Сообщение от j0hnik (Сообщение 455733)
<head>
	<meta charset="utf-8">
</head>
<body>
	<script>
	var a = location.href.split("=");
	if (a[a.length - 1] == "mywebsite") document.getElementById("al-form").style.display = 'none';
	</script>
</body>


не советую :no:

Что-то не получается((
Нужно просто вставить этот фрагмент в код, открыть индекс в браузере и добавить UTM? Или еще дополнительные манипуляции требуются?

j0hnik 17.06.2017 00:34

Цитата:

Сообщение от aalegz (Сообщение 455735)
Что-то не получается((
Нужно просто вставить этот фрагмент в код, открыть индекс в браузере и добавить UTM? Или еще дополнительные манипуляции требуются?

вставить перед </body> но будет работать только если страница загружается с данным параметром.
Было бы больше информации или макет, подсказали бы адекватное решение, а это так первое что в голову пришло.
<script>
	var a = location.href.split("=");
	if (a[a.length - 1] == "mywebsite") document.getElementById("al-form").style.display = 'none';
	</script>

laimas 17.06.2017 01:10

Цитата:

Сообщение от aalegz
if (source == mywebsite){
display: none;
} else {
display: inline-block;
}

Это как "влезть" в CSS процессор с JS? )

Такое можно сделать на сервере, проверив GET параметры запроса - если есть ключ/значение определенное, то прописать соответствующий стиль в теле документа.

aalegz 17.06.2017 20:38

Цитата:

Сообщение от j0hnik (Сообщение 455736)
вставить перед </body> но будет работать только если страница загружается с данным параметром.
Было бы больше информации или макет, подсказали бы адекватное решение, а это так первое что в голову пришло.
<script>
	var a = location.href.split("=");
	if (a[a.length - 1] == "mywebsite") document.getElementById("al-form").style.display = 'none';
	</script>

К сожалению, не сработал данный пример. Залил на хостинг, все сделал как нужно и ничего((
Возможно, есть еще какие-то решения?

j0hnik 18.06.2017 00:42

<script>
  var a = location.href;
  if (a.match(/mywebsite/) document.getElementById("al-form").style.display = 'none';
</script>

Попробуйте так

aalegz 18.06.2017 12:07

Цитата:

Сообщение от j0hnik (Сообщение 455772)
<script>
  var a = location.href;
  if (a.match(/mywebsite/) document.getElementById("al-form").style.display = 'none';
</script>

Попробуйте так

В чем может быть причина, если не работает и в таком виде?
<script>
document.getElementById("al-form").style.display = 'none';
</script>

j0hnik 18.06.2017 13:20

Цитата:

Сообщение от aalegz (Сообщение 455779)
В чем может быть причина, если не работает и в таком виде?
<script>
document.getElementById("al-form").style.display = 'none';
</script>

1)проверьте правильность id у элемента.
2)скрипт должен подключаться в конце документа.
консоль вам в помощь

aalegz 18.06.2017 21:52

Цитата:

Сообщение от j0hnik (Сообщение 455782)
1)проверьте правильность id у элемента.
2)скрипт должен подключаться в конце документа.
консоль вам в помощь

Спасибо большое, помог вариант ниже, проблема была в том, что добавлял код в начале Боди, а заработало когда добавил в конце.

script>
    var a = location.href.split("=");
    if (a[a.length - 1] == "mywebsite") document.getElementById("al-form").style.display = 'none';
    </script>


Часовой пояс GMT +3, время: 17:21.