2015-06-09 5 views
1

Мое приложение отправляет электронное письмо менеджеру с одобрять и отклонять кнопкуWindow.close(); не работает в Chrome и Mozilla Firefox

  • Когда менеджер нажимает на кнопку, веб-страница откроется.
  • На этой странице находится кнопка закрытия. При нажатии кнопки закрытия он должен закрыть окно браузера. Но он не закрывается и выдает сообщение об ошибке на консоли «Скрипты могут не закрывать окна, которые не были открыты скриптом».

Я попытался закрыть окно, то есть уже открыт. Поля для голосования

var win = window.open('','_self'); 
win.close(); 

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

var win=window.open("","_self"); 
win.close(); 

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

Вышеуказанное не помогло. Может ли кто-то предоставить решение для этого.

Заранее спасибо. Пожалуйста, не закрывайте это. Поскольку я googled много, я не нашел решения.

+0

ли консоль выдает ошибку? – JNF

+0

есть. «Скрипты могут не закрывать окна, которые не были открыты скриптом». –

+0

На самом деле, что происходит. В моем заявлении я отправлю письмо менеджеру для утверждения или отклонения отпуска. с помощью кнопки подтверждения и отклонения. когда менеджер нажимает кнопку, откроется веб-страница, на этой странице есть кнопка закрытия. При нажатии кнопки закрытия оно должно закрыть окно браузера, но оно не закрывается. и он выдает сообщение об ошибке на консоли, как это: «Скрипты могут не закрывать окна, которые не были открыты скриптом». –

ответ

3

См MDN on window.close():

Этот метод допускается только называется для окон, которые были открыты скриптом с помощью метода window.open(). Если окно не было , открытое скриптом, в консоли JavaScript появляется следующая ошибка: Консоль: скрипты могут не закрывать окна, которые не были открыты скриптом.

1

Я бы использовал компонент jQuery UI Dialog.

$(function() { 
 
    $("#dialog").dialog(); 
 
    });
<link href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
<div id="dialog" title="Basic dialog"> 
 
    <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p> 
 
</div>


Вы получаете сообщение об ошибке, потому что прогноз перенаправляет клики ссылку на новый экземпляр браузера. После того, как он открыт, он не контролирует его.

Вы можете закрыть страницы, которые он открывает, но вы точно не можете закрыть экземпляр браузера.


Если вы отправляете его по электронной почте, то в зависимости от почтового просмотра у Вас есть limited support. Пример: gmail удаляет html-head, body, все нестрочные css и javascript. Короче: jQuery UI Dialog не работает.

Вместо этого используйте ссылку с параметрами получения (например: уникальный идентификатор пользователя) и прочитайте ее, когда страница открыта.

+0

Это работает, даже если окно было открыто из почтового клиента (например, Outlook)? – surfmuggle

+0

Outlook использует механизм рендеринга MS Word и даже IE. Это даже более основательно, и оно еще больше ограничено, я сомневаюсь. Если возможно, я бы пошел с диалогом как http://stackoverflow.com/questions/19761241/window-close-and-self-close-do-not-close-the-window-in-chrome state, есть только взломанные решения вокруг него, что приведет к появлению ошибок безопасности при их создании. – Margus

+0

Это не отвечает на вопрос –

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