2014-12-18 3 views
0

У меня возникли проблемы с вызовом функции window.close, не получая следующее сообщение об ошибке:AngularJS не window.close работает

Scripts may close only the windows that were opened by it.

Вот как я мое приложение выложил:

HTML:

<html ng-app="mynewAPP" ng-controller="appCTRL"> 

....blahblah </html> 

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

app.controller("appCTRL" ,function([injections]){ 
    $window.close(); 
} 

Как я могу позволить AngularJS закрыть окно, на котором он сидит?

Например, ниже скрипт будет работать нормально: (основной JS)

<html> 
<head> 
<script type="text/javascript"> 
    function closeme(){ 
     window.close(); 
    } 

    </script></head> 

    <body onload="closeme()"></body> 
</html> 

Для тех, интересно, как я открываю страницу, просто посетив «mypage.html» в браузере. Ничего особенного.

+3

Важной частью здесь, как вы открыли окно, как говорится в сообщении об ошибке. – JJJ

+1

Как новый браузер (например, посетив mypage.html) – nate

+1

Тогда вы не можете закрыть окно программно. «Базовая версия JS» также не будет этого делать. – JJJ

ответ

6

Из-за ограничений безопасности вы можете закрыть только окна с window.close, которые были открыты javascript.

Ссылка: MDN

+1

взгляд на нижней части страницы, хотя: Закрытие текущего окна Когда вас вызовите метод close() объекта window напрямую, а не вызывайте close() в экземпляре окна, браузер закроет самое ближайшее окно, независимо от того, создал ли ваш скрипт это окно или нет. – nate

+1

Это означает, что созданный экземпляр окна может закрыться. Это все равно должно быть окно, созданное с помощью JavaScript. – JJJ

+1

Что вы пытаетесь сказать @nate? Что сказал @Juhana, это не изменяет ограничений безопасности. – Billy