У меня есть база данных, в которой хранятся события, и страница с объектом календаря. При рендеринге дней он просматривает события месяцев и, если они совпадают с текущим рендерингом, создает кнопку ссылки для представления события дня в календаре и добавляет его в эту ячейку. Я добавляю javascript к кнопке ссылки, чтобы изменить window.location на страницу для просмотра сведений о событии, передающих EventID в строке запроса (я попытался установить обратный адрес для вновь созданной кнопки ссылки, но это не привело к обратной передаче ... не повезло). Мне нужно установить переменную сеанса, т.е. Session ("EditMode") = "Edit" Значит, новая страница будет знать, что она должна получить информацию о существующем событии, а не готовиться к созданию нового события? Какие-либо предложения?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Добавьте еще одну переменную строки запроса, которую страница может использовать для запуска существующего и нового.
Ваши переменные сеанса контролируются сервером, JS работает на стороне клиента и не может напрямую изменять вары.
Вам нужно делать запросы к серверу с помощью POST или GET и скрывать iframes или вызовы XMLHTTPRequest () для отправки данных из JS в сервер, а затем пусть ваш серверный код обрабатывает vars.
Добавьте еще одну переменную строки запроса, которую страница может использовать для запуска существующего и нового.
Вам обязательно нужно добавить переменную на целевую страницу. Но я полагаю, что вы выполняете сценарий всплывающего окна, поэтому вы должны иметь возможность создать функцию javascript OpenWindow () и запускать ее, когда пользователь щелкает ссылку.
<script>
function OpenWindow(eventId, editMode)
{
var window = window.open("popup.aspx?eventId = " + eventId + "&editMode = " + editMode);
}
</script>
На стороне сервера нужно построить вызов функции OpenWindow. Например:
onclick = "OpenWindow(eventId = " + row["eventId"].ToString() + "&editMode = " + editMode.ToString() + ");"
Другими словами, подготовьте все на стороне сервера, чтобы ваш javascript размещал все переменные на новой странице. Надеюсь это поможет.
Если вы используете что-то вроде Struts2, у вас может быть скрытая переменная в вашем jsp
<s:hidden id = "EditModeId" value = "%{#session.EditMode}"/>
И в javascript просто получите доступ к этой переменной
alert(document.getElementById('EditModeId').value);
var page1 = document.getElementById("textbox").value;
sessionStorage.setItem("page1content", page1);
на другой странице используйте это значение как переменную сеанса
document.getElementById("textbox2").value=sessionStorage.getItem("page1content");
Какие события вы храните? А также, не могли бы вы опубликовать код?