2012-04-13 6 views
2

Я пытался понять это на некоторое время, но когда я пытаюсь ссылаться на окно, которое я открыл, этот дескриптор всегда не определен.Google Chrome Usercripts reference window.open

Стоит отметить, что в настоящее время используется в userscript и вот фрагмент кода в вопрос:

var donateWindow; 

// ###################################################################### 
// # Show the donation popup and open a window to paypal site 
// ###################################################################### 
function showDonateWindow() 
{ 
    if (window.confirm("Question here")) 
    { 
     if (! (typeof(donateWindow) == 'undefined' || donateWindow.closed)) window.donateWindow.close(); 
     window.donateWindow = window.open("http://somesite.com/","tabName"); 
    } 
} 

Любая помощь по этому вопросу будет очень признателен. Казалось бы, независимо от того, что я делаю, window.open возвращает значение «undefined».

Моя цель - показать всплывающее окно, но если он уже открыт, он должен просто заменить старый. Это работает так, как ожидалось в FF, но для жизни я не могу это сделать в Chrome.

ответ

-1

Почему вы пытаетесь закрыть существующее окно перед тем, как открыть новый? вам не нужно это делать.

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

Это означает, что вам не нужно искать, если есть открытое окно.

function showDonateWindow() 
{ 
    if (window.confirm("Question here")) 
    { 
     window.open("http://somesite.com/","donateWindowName"); 
    } 
} 
Смежные вопросы