2014-11-12 5 views
3

Я пытаюсь написать функцию JavaScript, которая будет работать в Firefox 5.0. Мне нужно, чтобы страница полностью загружалась, а затем закрывалась. То, что я пытаюсь сделать, это:Закрытие окна после полной загрузки страницы

var temp = window.open(link); 

temp.window.onload = function() { 
    temp.window.close(); 
} 

Но до сих пор все это не работает новая вкладка, но не закрывает его.

Есть ли способ успешно выполнить это?

+1

У вас есть доступ к коду окна открытия? Я имею в виду, может быть, лучше добавить вторую часть кода в новое окно? –

+0

Я новичок в Javascript, не могли бы вы объяснить немного больше? – user3636583

+1

Является ли ссылка в другом домене или поддомене? – epascarello

ответ

2

Возможно, вы можете создать новый js-файл для этого окна и иметь только window.close(); внутри.

+0

Это действительно сработало отлично! Спасибо, я только что сервер послал новый js, как вы сказали, и это сработало. – user3636583

2

Если у вас есть доступ к всплывающем окне вы можете добавить следующее:

JQuery

<script> 
    $(window).load(function(){ 
     open(location, '_self').close(); 
    }); 
</script> 

Javascript

<script> 
    window.onload = function() { 
    open(location, '_self').close(); 
    }; 
</script> 

Я также предлагаю вам прочитать Question и это answer

3

Прежде всего, если ссылка находится не в том же домене, вы не сможете закрыть окно из-за той же политики происхождения.

прослушивает событие OnLoad с addEventListener

var temp = window.open(link); 
temp.addEventListener('load', function() { temp.close(); } , false); 

, если вам нужно поддерживать старую ИЭ, чем вам нужно будет attachEvent

var temp = window.open(link); 
temp[temp.addEventListener ? 'addEventListener' : 'attachEvent']((temp.attachEvent ? 'on' : '') + 'load', function() { temp.close(); }, false); 

Там нет необходимости открывать окно чтобы попасть в веб-страницу.

Вы можете:

  • Сделать запрос Ajax - должен быть тот же домен
  • Установить скрытую IFrame
  • установить источник изображения
0

вы можете использовать что-то вроде

function closed(){ 
 
    
 
setTimeout("window.close()", 6000); 
 
} 
 
    
 
    
 

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