В ASP.net и C# - в моем событии pageLoad я нажимаю кнопку с кодом, написанным для получения ссылки SSO, а затем с помощью RegisterStartUpScript для добавления window.open со ссылкой на SSO в нем.После открытия всплывающего окна Как перенаправить родительскую страницу?
После того, как SSO откроется и загрузится, я хочу перенаправить страницу с событием pageLoad на другую страницу.
В приведенном ниже коде autoOpenSSO и redirectUser являются настройками, которые загружаются в пользовательский интерфейс администратора.
Проблема: Когда autoOpenSSO является истинным, и у меня установлен redirectUser на false, всплывающее окно открывается без проблем, но когда я устанавливаю перенаправление на true, всплывающее окно не открывается, а страница перенаправляет обратно на мое перенаправление адрес.
Я хочу, чтобы всплывающее окно было открыто, а страница перенаправлялась обратно на мою страницу переадресации, но чувствую, что я что-то пропустил, и мне не повезло.
Мой код:
protected void Page_Load(object sender, EventArgs e)
{
if (autoOpenSSO == true)
{
ccdetails_Click(this, null);
}
if (redirectUser == true)
{
Response.Redirect(redirectAddress);
}
}
protected void ccdetails_Click(object sender, EventArgs e)
{
ClientScriptManager cs = Page.ClientScript;
try
{
string link = getSSOlink(ah1.InstitutionUserID, cardnumber).Trim();
string s = "window.open('" + link + "','_blank', 'width=980,height=600,resizable=yes');";
cs.RegisterStartupScript(this.GetType(), "PopupScript", s, true);
}
catch (Exception se)
{
LogSystem.LogInfo(se.ToString());
}
}
Любые мысли приветствуются.
Вам необходимо добавить EventListener для всплывающего окна. – Botonomous
Спасибо за ключевые слова @Anon. Я попытался добавить var popupWindow = window.open ('"+ link +"', '_ blank', 'width = 980, height = 600, resizable = yes'); if (popupWindow) {popupWindow.onload = function() {window.location.replace ('"+ redirectAddress +"')};}, но поскольку это перекрестный домен, я не думаю, что мой JS может получить функцию когда будет запущено window.onLoad. Я подумываю установить тайм-аут, чтобы исправить это. – David
Ну, для моих нужд я просто решил, что мне не нужен слушатель или что-то еще. Я просто добавил язык переадресации с помощью сценария запуска, а не в C#. Я собираюсь создать параметр, который добавит скрипт, если это необходимо, а если нет, он останется на странице, а не перенаправляется. Я добавлю код позже. – David