IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Kак из обычной страницы в обычную страницу передавать яваскрипт параметр? (https://www.imho.ws/showthread.php?t=62346)

Viroman 22.06.2004 18:41

Kак из обычной страницы в обычную страницу передавать яваскрипт параметр?
 
Здравствуйте многоуважаемые знатоки своего дела :claps:
Смысл в том, что первым делом у меня открывается страница с регламентом условий, если пользователь согласен, то в куки заносится определённое значение и пользователь сопровождается сразу на нужную страницу, не согласен, заносится в куки и пользователь идёт гулять на цельный месяц, так сказать даю срок передумать :contract:
Но теперь смысл в том, что соглашение будет появляться раз в месяц, и это уже настроено.
А теперь я так подумал, если пользователь занесёт страницу в фавориты, на которую пользователь был проведён, то соглашаться ежемесячно ему не придётся, а мне надо. Значит мне надо как то передавать какой нибудь мелкий параметр в открываемую страницу, тоесть открываемая страница не динамическая, иначе это было бы сделать легче.
Вопрос как из обычной страницы в обычную страницу передавать яваскрипт параметр?
PS: можно конечно и на второй странице сделать проверку куки, но не хочется раздувать код этой страницы тем же скриптом.

D1g174LM4n14c 22.06.2004 18:53

Насчет передавать параметр с помощью яваскрипта, есть несколько вариантов. Можно через куки, а можно через URL. То есть, перенаправлять юзера по URL page.html?query_string, где query_string - строка, которую легко можно получить яваскриптом через document.location.search.

А по поводу всей системы, которую ты описал - это вообще бред какой-то... Защиты - ноль.

Viroman 22.06.2004 19:02

Мне не нужна защита, мне нужно согласен или нет. Неужели не ясно?
Если выключен яваскрипт, то страница вообще не будет отображаться.

Цитата:

URL page.html?query_string, где query_string
Этот метод недоделаный какой то, что помешает мне занести его в фавориты?
А насчёт куки я уже сказал, что не хочется раздувать этим скриптом вторую страницу.
PS: страница находится на бесплатном хостинге не поддерживающем навороты ввиде cgi скриптов

D1g174LM4n14c 22.06.2004 19:18

Теперь я понял что тебе нужно.
Но это не получиться :)

RaZEr 22.06.2004 19:44

Цитата:

Если выключен яваскрипт ...
Ты вопрос задал "Kак из обычной страницы в обычную страницу передавать яваскрипт параметр" ...

Viroman 22.06.2004 19:56

Razer, ты неправильно понял. Это я на вопрос "защиты" сказал, что чтобы отображалась страница, надо чтобы не был выключен javascript.
Просто у меня по окончании загрузки страницы ставится visibility show, а иначе всегда hidden стоит, поэтому говорю, что если у кого яваскрипты будут отключены, страница не будет отображаться, вот и всё.
Так что мой вопрос всё ещё остаётся открытым, ты не знаешь как это воплотить?
Я на все 100% уверен, что что то подобное видел по типу оpener

Saruman 22.06.2004 20:06

Viroman
Или куки, или GET-запрос. Т.к. GET-запрос тебя не устраивает - его можно в фавориты пихнуть, то остаются только куки. И "раздувание второй страницы" будет составлять всего несколько строчек на проверку этой куки.

D1g174LM4n14c 22.06.2004 20:15

Невозможно перенаправить пользователя на страницу, а потом его на нее не пускать, если не использовать серверных скриптов. В любом случае имя страницы одно и то-же, а яваскриптом страницы не защищают!

И даже если использовать "какой-то параметр" - его все равно не удастся скрыть от пользователя. Захочет - увидит... ;)

Saruman
Куки помогут создать только лишь "защиту от дурака".

"Случайное" значение яваскриптом еще можно создать (например, Math.random() или самому генерить исходя, скажем, из текущего времени).

НО!

Как проверить на второй странице, что идентификатор валидный? То-то-же... Так что если нужен случайный идентификатор, он в любом случае должен зависить от какой-то величины, которая останется неизменной между страницами.

А дальше... я уже лучше буду молчать... все равно, даже если много скажу - ничего не измениться :rolleyes:

Viroman 22.06.2004 20:28

Цитата:

Невозможно перенаправить пользователя на страницу, а потом его на нее не пускать, если не использовать серверных скриптов.
Никогда не говори никогда. Это возможно, только если ты не знаешь как, это ещё не значит, что этого не сделать.

Цитата:

В любом случае имя страницы одно и то-же, а яваскриптом страницы не защищают!
Запомни одну пословицу: каждый веник мечтает стать пальмой :ржать:
Мне не нужно суперской защиты, если я скачаю страницу, достаточно самостоятельно подправить значение, и смотри наздоровье. Это не защита в твоём понимании, да и в моём тоже. На бесплатном хосте особенно не развернёшься. Да мне и защиты не надо, просто регламент, согласен или нет, честное слово, как маленький ребёнок придираешься.
Не знаешь ответа, не надо лишнии нюни раскидывать, что можно, а что нельзя, это и так всем известно.

D1g174LM4n14c 22.06.2004 20:41

Я тебе уже сказал все варианты. Или ты думаешь что их бесконечное множество? Я же не смогу тебе генерировать их столько, сколько ты будешь сам придираться что "это некрасиво", а то "раздувает страницу". Просто подтверждение - значит просто подтверждение. Куки как удачный вариант если не отключены и Get-метод - как альтернатива.

helldomain 22.06.2004 20:46

Est eshe wariant. Sozdat neskolko freimow. Odin newidimij. W nem pinat nekotruju JS peremennuju i obraschatsya k nei iz stranic podgrujaemih w widimom freime.

RaZEr 22.06.2004 20:49

Хелл, так ему надо чтобы при повторном заходе если юзер согласился, то зашел без проблем, а если нет - увидел соглашение. Но куки использовать религия не позволяет.

D1g174LM4n14c 22.06.2004 21:12

Если делать с фреймами, то можно реализовать идею так:

Два фрейма. Один невидимый, другой - со страницей.
В невидимом фрейме просто определяется переменная, скажем, isAccepted с начальным значением 0. На странице с соглашением кнопка "Согласен" при нажатии на которую isAccepted становится == 1 и загружается след. страница, на которой проверяется переменная isAccepted на равенство единице.

RaZEr
А вот кукисы ставятся теперь только на первой странице с соглашением, а потом при повторном заходе проверяются там же и при необходимости происходит переадресация.

Viroman 23.06.2004 01:40

Я ухохатываюсь :yees:
Народ, пришлось через куки делать, оказалось это даже куда более идеальней, когда конечный пользователь не будет сослан каждый раз к регламенту, если он уже согласился. Короче пожертвовал килобайтик пользовательских нервов, ободрал всё ненужное и запихал во вторую страницу.
Всем спасибо, было поучительно. :ржать:

Viroman 23.06.2004 22:12

Народ возникла ещё одна проблема :idontnow:
Значит поставил я скрипт, всё путём. Но блин если использовать редирект, а он ещё и лочит название сайта, то запись/чтение куки не срабатывает. Главное на опере открываешь через редирект, всё нормально, но на интернет експлорере глючит, тоесть что не нажми, по одному месту, не сохраняется ничего, а когда заходишь без редиректа напрямую через интернет експлорер, всё нормально. Вывод один, вот из за этого залоченного имени страницы, интернет експлорер как то дуреет из за него, да и мало того, интернет експлорер выдал весьма странную ошибку и самозакрылся :idontnow:
Короче ошибка в памяти, в общем хрен знает что творится.

Народ вопрос, как сделать переход от одного сайта к другому через яваскрипт со свойством равнозначному нажатию обычного линка с target=top_ ?

Сейчас стоит window.location.href, но с ним залочка остаётся.
А как в неё забить свойство target=top_ никто не в курсе, чтобы автоматом всё происходило. Если такой возможности нет, то хотя бы кто нибудь в курсе, как через яваскрипт производить нажатие реального линка автоматоматически <a href*** ?

В общем ваша помощь нужна народ.
PS: редирект уж как терять не хочется, весь линк из шести букв, да ещё рекламу с глаз долой убрал :beer: на халяву такое просто так не оставляют.

Добавлено:
Проблема решена, просто скрипт махонький поставил.
function breakout_of_frame()
{ if (top.location != location) { top.location.href = document.location.href ; } }

Viroman 02.07.2004 12:13

Ребята я настырный, говорил же что есть решение, но оно постоянно ускользало. Так может быть для кого нибудь когда нибудь это решение окажется полезным.

Значит страница первая, которая будет вызывать вторую страницу должна выглядеть так.

Код:

start.htm
<HTML>
<HEAD>
</HEAD>
<FRAMESET border=0 frameSpacing=0 rows=*,1 frameBorder=NO>
<FRAME name=indexname src="index.htm" noResize>
</FRAMESET>
</HTML>

Вторая же страница должна иметь следующее содержание.

Код:

index.htm
<html><head>
</head><body>
<script type="text/javascript">
<!--
 document.write("Ты попал сюда со страницы: " + document.referrer);
//-->
</script>
</body></html>

Конечно это будет работать только будучи находясь на сервере, с локалки ничего не показывает. Но в общем в таком виде через referrer можно спокойно определять, с какой страницы попал человек сюда и проводить дальнейшие действия.
И ещё один удачный момент, у пользователя сохраняется в фаворитах конечно же referrer, а не вызванная страница.
Может кому то пригодятся эти познания, потому делюсь с вами.
Спасибо за внимание.

Viroman 03.07.2004 01:27

Народ извиняюсь, если покажется, что я захламляю форум, но нашлось более изящное решение редиректа с рефералом на яваскрипте, всем редиректам редирект :yees: потому что рефер то сохраняется, все остальные способы(в том числе и метатаг) кроме вышеуказанного с фреймом не сохраняют реферал, а фрейм очень некрасивое решение на мой взгляд.
Надеюсь когда нибудь кому нибудь пригодятся мои познания :biggrin:

Первая страница

Код:

start.htm
<HTML><HEAD>
</HEAD>
<DIV id=nevidim style="visibility: hidden;">
<a id="ssilka1" href="index.htm" TARGET="_top">dummy</a><br>
<a id="ssilka2" href="index.htm" TARGET="_blank">dummy2</a><br>
</div>
<script type="text/javascript">
<!--
document.all.ssilka2.click()
document.all.ssilka1.click()
//-->
</script>
</HTML>

Вторая страница
Код:

index.htm
<html><head>
</head><body>
<script type="text/javascript">
<!--
var prosto = document.referrer
document.write("Вы пришли с " + prosto);
document.write("<br>Ваша страница является " + document.location);
//-->
</script>
</body></html>

Открываются также более широкие возможности как TARGET="_top" или
TARGET="_blank" указывая их в ссылке, в общем лепота.


Часовой пояс GMT +4, время: 07:29.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.