2014-11-03 4 views
0

Мне нужен способ сделать кнопку «Выход». У меня есть страница перенаправления, которая открывает новое окно с JavaScript с помощью _self, поэтому оно заменяет окно. Следующее, что мне нужно сделать, это использовать JavaScript, чтобы закрыть это окно.Закрытие окна, которое было заменено

Теперь, я думаю, проблема в том, что, поскольку страница была заменена, она не помнит, что она была открыта JavaScript, поэтому ее нельзя закрыть. Можно ли это сделать на любом другом языке?

+0

Не работает ли 'window.close()'? –

+0

Нет, я предполагаю, что он не «помнит», что он был открыт JS, поскольку исходное окно закрыто (заменено) –

ответ

0

Хорошо, кто-то сказал мне, что javascript может закрыть окно только в том случае, если это окно запомнилось, что оно было открыто javascript ... или что-то в этом роде.

Ну, я бы обнаружил эксплоит только сейчас:

<div style="width: 128px; height: 32px; background-color:green;" onclick="doStuff()">Click me</div> 


    <script> 

     function doStuff() 
     { 
      var myWindow = window.open("", "_self"); 
      myWindow.document.write("This page will close in 3 seconds, for real...\<script\> setTimeout(function() { window.close(); }, 3000);\<\/script\>"); 
     }   

    </script> 

Вы видели, что я только что сделал там, я послал блок кода на вновь открывшуюся страницу, и новая страница побежала (по крайней мере, на моем хроме). Таким образом, между тегами скрипта вы можете создать кнопку или что-то, что закрывает документ (вместо функции таймаута).

+0

И я думаю, мне нужно вставить его на мою страницу перенаправления? Кроме того, я пытаюсь. –

+0

Нет, это не работает. Не могли бы вы сказать, как именно вы настроили все? Кроме того, я думаю, вы открываете его напрямую. Я использую мой загруженный сервер, поэтому он может работать только на вашем компьютере. –

+0

Как супер грязное обходное решение, вы можете написать всю страницу перенаправления (как строку, + сценарий в конце) в myWindow.docuument.write(). Я просто написал простую html-страницу с разметкой и скриптом, просто для иллюстрации. Я знаю, что это не сработает, если вы сделаете это так: var myWindow = window.open ("example.html", "_self"); В любом случае, если бы вы предоставили немного больше разметки и кода, я мог бы увидеть проблему более четко. –

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