JavaScript проблема в IE с window.opener - PullRequest
1 голос
/ 04 октября 2011

Я пытаюсь использовать следующий JavaScript, чтобы проверить, открыта ли всплывающая страница.

Родительская страница (вызывающая страница, чтобы открыть всплывающее окно) открыта, но этот код продолжает давать сбой.Я звоню с всплывающей страницы aspx, у которой есть главная страница внутри другой главной страницы.Таким образом, событие click, которое в конечном итоге вызывает этот сценарий, является ссылкой редактирования в Gridview в заполнителе содержимого, который находится в самом верхнем заполнителе содержимого главной страницы, не будучи уверенным, имеет ли это какое-либо отношение к нему.Сценарий запускается, но не видит родительскую страницу как открытую и не закрытую.

if (window.opener != null && !window.opener.closed) { 
    alert(window.opener); 
    var val = window.opener.parentFunc(a); 
    alert(a); 
} 

Это проблема только IE, Firefox может идентифицировать страницу window.opener.Пробовал несколько версий IE, у всех были проблемы, хотя Firefox и Opera работают.

Я действительно использовал это предупреждение ...

alert(window.opener);

В IE возвращает Undefined.

В Firefox возвращено ObjectWindow.

Ответы [ 3 ]

0 голосов
/ 06 октября 2011

Я заставил это работать, отправив скрипт с VB.net следующим образом ...

Dim BrowserSettings As String = "status=no,toolbar=no, scrollbars =yes,menubar=no,location=no,resizable=no," & "titlebar=no, addressbar=no, width=650 ,height=800"
Dim URL As String = "testNewPage.aspx"
Dim scriptText1 As String = ("<script>javascript: var w = window.open('" & URL & "','_blank','" & BrowserSettings & "'); </script>")
ScriptManager.RegisterStartupScript(Me, GetType(Page), "ClientScript1", scriptText1, False)here

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

Я пытался применить фокус, похоже, не работает.Кроме того, попробовал всплывающее окно modaless, которое работает, но я теряю ссылку на открытое окно.

0 голосов
/ 12 мая 2017
function getParentWindow(){
    var father = window.opener;
    if(father == undefined) {
       father=window.dialogArguments
    }

    return father;  
}
0 голосов
/ 04 октября 2011

Я считаю, что это ограничение безопасности в IE.Посмотрите на эту ветку и посмотрите, отвечает ли она вашей проблеме:

http://social.msdn.microsoft.com/Forums/en/iewebdevelopment/thread/0c014e78-8d35-4df3-93da-7f6a30b4ed8b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...