2015-09-30 9 views
0

Я не могу закрыть текущую вкладку браузера с помощью javascript.Как закрыть вкладку браузера

I tried-

window.close(); //1 

    window.open("", '_self');//2 
    setTimeout(function(){ 
     window.close(); 
    },100); 

    window.open('','_parent',''); //3 
    window.close(); 

    window.top.opener=null; //4 
    window.close(); 

Ничто не работает для меня в хроме

+0

Можете ли вы подробнее описать или сфокусироваться ... coz window.close() работает во всех случаях –

+0

Я бы не стал парировать, что javascript всегда может закрыть вкладку, поскольку она, скорее всего, связана с настройками безопасности браузера. – planetmaker

ответ

7

метод window.close разрешается только называть для окон, которые были открыты с помощью сценария с помощью window.open метод.

+0

Вот что я пытаюсь сделать во втором методе. Я открываю его с помощью javascript, а затем закрываю его. – Shubham

0

Насколько я знаю, вы не можете закрыть вкладку браузера с помощью Javascript. Это не обычный способ сделать ...

Я не уверен, если вы можете это сделать, потому что некоторые браузеры не имеют никаких вкладок на всех ...

Но попробовать это, может быть его работать для вас:

window.top.close(); 

ссылка: Another Question in stackoverflow

ИЛИ:

<a href="javascript:window.open('','_self').close();">close</a> 
+0

Не работает для меня. – Shubham

+0

Как насчет моего обновления? – Kiyarash

+0

Оба способа работают для меня в хроме – Kiyarash

0

Вы можете только закрыть окна/вкладки, которые вы создаете сами. То есть вы не можете программно закрыть окно/вкладку, которую создает пользователь.

Например, если вы создали окно с window.open(), вы можете закрыть его с помощью window.close().

0

Пожалуйста, попробуйте использовать следующие

window.top.close(); 

Надежда, это поможет!

+0

Это не работает. – Shubham

0

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

var mywin = window.open('', '_self'); 
mywin.document.body.textContent = 'This is text'; 

setTimeout(function() { 
    mywin.close(); 
}, 5000); 
+0

'var closeIt = window.open (" ", '_self'); \t \t SetTimeout (функция() { \t \t \t closeIt.close(); \t \t}, 100); '** Не работает для меня ** – Shubham

+0

' вар closeIt = window.open ("", «_self «); setTimeout (function() {closeIt.close();}, 100); '** Абсолютно работает здесь. **. проверьте, нет ли ошибок в консоли вашего браузера. – Jai

+0

NO ERRORS в консоли. – Shubham

0

Как уже говорилось, вы можете только закрыть окна/вкладки, которые вы ранее открыли себя. Ни один из ваших фрагментов кода не соответствует этому.

Если вы хотите, чтобы закрыть окно ребенка от родителя необходимо сохранить ссылку на него, например:

var child = window.open(""); 
setTimeout(function(){ 
    child.close(); 
},100); 

Demo

Если вы хотите, чтобы закрыть окно ребенка от себя, что нужно для запуска кода внутри окна.

Если вы перезаписываете текущий документ пустым, ваш код исчезает.


Хром - это особый зверь. Он открывает каждую вкладку в другом процессе. Это означает, что несколько хороших старых методов, которые включают разные вкладки, вообще не работают. Например, вы не можете использовать целевой параметр в window.open() для совместного использования окна.

+0

Я хочу закрыть то же окно. В моем коде я пытаюсь открыть то же окно, а затем закрою его javascript. – Shubham

0
<script src="~/Scripts/jquery-1.8.2.js"></script> 
<script> 
    var win; 
    $(document).ready(function() { 
     var url = 'this tab url'; 
     win = window.open(url, '_self'); 
     window.stop();     
    }); 
    function closeWindow() { 
     win.close(); 
    } 
</script> 

Затем в HTML

<a href="javascript:closeWindow();">close</a> 

Если есть несколько бивень, чтобы загрузить затем ждать несколько раз этим

setTimeout(
    function() 
    { 
    //do something special 
    //window.stop(); 
    }, 5000); 
+0

Я не хочу закрывать вкладку нажатием. Это должно происходить без взаимодействия пользователей. – Shubham

0
window.open('', '_self', '').close(); 

Посмотреть мой первоначальный ответ на этот thread

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