2015-01-09 6 views
0

У меня есть страница login, которая откроет фактическую страницу (другой адрес), если пароль верен.Войти с помощью одной кнопки

Вот сценарий я бегу:

<script> 
var dataGlobal; 
$('#in1').click(function(){ 
    var reply = prompt("Password", ""); 
    if(!reply) return; // user pressed cancel 
    $.post('/~std10093/scheduler_pass.php', {elements: reply}, function(data) { 
     if(data != "not") 
     alert("Password ok, press the second button to enter scheduler"); 
     else 
     alert("prits"); 
     dataGlobal = data; 
    }); 
}); 
$('#in2').click(function(){ 
    window.open(dataGlobal); 
}); 
</script> 

Теперь пользователь должен нажать первую кнопку, введите пароль, а затем нажмите на другую кнопку, которая откроет новый URL. Я хочу сделать это только с одной кнопкой, возможно ли это?

Если я изменяю код выше и перемещаю window.open(dataGlobal); в тело if(data != "not") (который является телом, в который мы войдем, если пароль верен), firefox предотвратит загрузку новой страницы, .

enter image description here

В изображении выше, можно видеть также две кнопки я имел в виду ранее.


В идеале я хотел бы заменить window.open() с чем-то, что не будет вызывать предупреждение всплывающего окна.


EDIT

Я хочу иметь другой URL для фактической страницы. Фактической страницей является планировщик от here, который является общедоступным, поэтому URL-адрес входа также является общедоступным. Тем не менее, я хочу, чтобы URL-адрес планировщика был закрытым, чтобы люди, которым я доверяю, могли получить к нему доступ без входа в систему.

+0

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

+1

@ brso05, вероятно, не очень безопасно, если, возможно, вы не добавили содержимое в div –

+0

@SimonStaton, как это сделать? Как это менее безопасно, чем другая страница? – brso05

ответ

2

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

В этом случае изменение:

$('#in2').click(function(){ 
    window.location.href = dataGlobal; 
}); 

Edit: - может перейти к функции обратного вызова:

<script> 
var dataGlobal; 
$('#in1').click(function(){ 
    var reply = prompt("Password", ""); 
    if(!reply) return; // user pressed cancel 
    $.post('/~std10093/scheduler_pass.php', {elements: reply}, function(data) { 
     if(data != "not") 
     window.location.href = data; 
     else 
     alert("prits"); 
    }); 
}); 
</script> 
+0

Игроки Cage спасибо S²! – gsamaras

+0

Это не проблема. 'window.open' будет работать в этом случае. Он пытается сделать это в обратном вызове AJAX. –

+1

@ AlexanderO'Mara window.open() создаст новое окно браузера (заблокированное firefox), где window.location.href будет использовать текущее окно? - http://www.w3schools.com/jsref/met_win_open.asp «Метод open() открывает новое окно браузера». –

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