2013-02-12 5 views
3

Моя работа по созданию некоторых сайтов для избитых женщин. Они запросили кнопку «Escape», чтобы быстро покинуть страницу, если они вошли.javascript открыть и закрыть текущее окно

Приведенные мной примеры - это нормальная ссылка (где вы можете щелкнуть «назад» и быть на предыдущей странице) или свернутое решение со всплывающими окнами и новыми окнами, все еще приводящее к простой «обратной», чтобы увидеть, где они мы. Лично я не думаю, что одна из них - отличная идея. Я искал и пробовал несколько способов закрыть текущее окно и открыть другое, но мне не удалось найти решение, которое работает в основных браузерах. Если кто-нибудь знает, как это сделать или лучше понять, как решить их проблему, я был бы признателен.

Этот пост (Html javascript to open new window and close current window) работает в chrome, но, к сожалению, мне нужно его работать, по крайней мере, в IE, Firefox и Chrome.

+0

Интересная, достойная причина! –

ответ

0

Вы можете взглянуть на Mousetrap. Это делает простую привязку клавиш. Используя его, вы могли бы сделать что-то вроде этого:

Mousetrap.bind('esc', function(e) { 
    window.location.history.back(); 
    // Or alternatively, window.close() to just close the window 
    return false; 
}); 
0

Может попробовать это:

< A HREF = "JavaScript: window.opener = 'х'; window.close();"> Закрыть </a>

0

Не использовал window.location.replace сделать трюк?

http://jsfiddle.net/atesgoral/xS3q5/

Нажатие кнопки Назад в браузере не принесет предыдущую страницу, так как история будет переписана.

+0

Спасибо, но это, похоже, работало в Chrome, но не в FF или IE. Однако было похоже на хорошее предложение. Есть несколько сценариев, которые работают в каждом из браузеров, поэтому я полагаю, что у меня могут быть три разные кнопки и проверить, что браузер использует и отображает, тот работает в своем конкретном браузере? Это похоже на плохой хакерский способ делать то, что я хочу. –

0

Насколько я знаю, не существует полностью совместимого с кросс-браузером способа закрыть текущее окно. Вместо этого я предлагаю сделать только Esc переход на другой сайт или страницу. Вы можете сделать страницу на своем веб-сайте, которая отображает случайную статью из Новостей Google или что-то в этом роде, или вы можете просто пойти туда напрямую. Если ваш сайт не назван battered-women.com или что-то, он, вероятно, достигнет того же эффекта, что и закрытие окна.

document.addEventListener('keydown', function (e) { 
    var key = e.keyCode ? e.keyCode : e.which; 
    if (key == '27') { 
     //destroy all visible content in case new page takes a long time to load 
     document.getElementsByTagName('body').innerHTML = ''; 
     window.location = 'http://news.google.com/'; 
    } 
}); 
0

Как насчет того, чтобы заменить всю страницу с помощью JavaScript с помощью пустого div? Проблема с решениями, требующими изменения страницы, заключается в том, что вы не можете контролировать задержку сети. Удаление всего содержимого со страницы было бы тем, что у вас есть полный контроль над.

В приведенном ниже решении показан только один div с высотой и шириной 100% с фиксированным положением, скрывающим любой контент на странице. Когда страница скрыта, вы можете спокойно изменить местоположение, не беспокоясь о времени загрузки.

<div id="HideMe" style="display: none; position: fixed; width: 100%; height: 100%; background-color: #fff">&nbsp;</div> 
<a href="#" id="escape">Escape!</a> 

и

$("#escape").on("click",function(){ 
    $("#HideMe").show(); 
    location.href = "/*New URL*/"; 
}); 

http://jsfiddle.net/ySq8L/

0

Между некоторые из нас (и в Интернете), мы не смогли найти отличное решение для того, что они искали. Поговорив с клиентом, мы договорились сделать стандартную ссылку на нейтральную страницу, но включили в нее отказ от безопасности в Интернете, указав ссылку на то, как делать частные просмотры. Это не так элегантно, как любой из нас надеялся, но это наше лучшее решение.

Благодарим за предложения, некоторые из них имеют хорошие перспективы, но не полностью получили то, что хотел клиент.

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