2015-05-09 1 views
1

У меня возникли трудности с открытием окон через некоторое время, а затем автоматически закрывать их через определенный промежуток времени. Я не уверен, почему, но похоже, что когда я пытаюсь использовать setTimeout в window.open и window.close, они каким-то образом вмешиваются. Вот мой код атм:setTimeout to window.open и закрыть, в том же окне?

function topLeft() { 

var myWindow = "image.png", "ONE", "width=300,height=310,top=100,left=100,menubar=no,toolbar=no,titlebar=no,statusbar=no"; 

setTimeout(function() { 
myWindow.window.open() }, 5000); 

setTimeout(function() { 
myWindow.close() }, 10000); 


function start() { 
openClose(); 
} 


window.onload = start; 

Спасибо для смотреть

ответ

2

Ваш код просто не правильно.

myWindow - это строковая переменная.

Вы пытаетесь позвонить в myWindow.window.open(). Это создаст ошибку сценария, потому что myWindow (строковая переменная) не имеет свойства window.

Возможно, что вы имеете в виду, чтобы сделать это:

var myWindowURL = "image.png", myWindowName = "ONE"; 
var myWindowProperties = "width=300,height=310,top=100,left=100,menubar=no,toolbar=no,titlebar=no,statusbar=no"; 
var openWindow; 

setTimeout(function() { 
    openWindow = window.open(myWindowURL, myWindowName, myWindowProperties); 
}, 5000); 

setTimeout(function() { 
    openWindow.close() 
}, 10000); 

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

Потому что setTimeout() происходит некоторое время в будущем, не считается прямым результатом действия пользователя, поэтому попытки открыть окна с setTimeout() скорее всего блокируются блокировщиком всплывающих окон.

Вы можете, конечно же, отключить блокировщик всплывающих окон в своем браузере, но это только то, что вы можете сделать в своем собственном браузере. Вы не можете отключить блокировку всплывающих окон через Javascript (так как это победит цель).

+0

Извинения, которые я должен был упомянуть, я прошу пользователей отключить их блокировщик всплывающих окон (я знаю, что это неодобрительно, но это эксперимент). Я отключил блокировщик, и код все еще не работает? –

+0

@ NickR93 - посмотрите, что я добавил в начале моего ответа. Ваш код просто неправильный. – jfriend00

Смежные вопросы