2016-01-08 3 views
2

Я хочу показать всплывающее окно, когда пользователь входит на сайт. Это означает, что когда пользователь нажимает кнопку входа в систему и перенаправляет на следующую страницу, в это время должно появиться всплывающее окно. Пользователь может получить доступ к фоновой странице после закрытия всплывающего окна. Когда пользователь пытается обновить страницу, он не должен показывать всплывающее окно. Но приведенный ниже код показывает экран HTML, переопределенный на моей фоновой странице.Отображать всплывающее окно только при входе пользователя в систему


 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
 
<script src="https://code.jquery.com/ui/1.10.1/jquery-ui.js"></script> 
 

 
$(function() { 
 
    $("#dialog").dialog({ 
 
    \t width : 710, 
 
\t height : 410, 
 
\t modal: true, 
 
\t resizable: false, \t 
 
\t draggable: false, \t 
 
    }); 
 
    
 
    
 
    }); 
 
    
 
<link rel="stylesheet" href="https://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css"> 
 

 

 
.ui-dialog-titlebar { 
 
    height: 15px; 
 
    
 
\t } 
 
\t button { 
 
    outline:none !important; 
 
} 
 
\t 
 
html, body { 
 
margin: 0; 
 
padding: 0; 
 
height: 100%; 
 
}
<!doctype html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <title>jQuery UI Dialog - Default functionality</title> 
 
</head> 
 
<body> 
 
<div class="modal"></div> 
 
<div id="dialog" title=" "> 
 
    <iframe style="position:absolute;Left:150" frameborder="0" scrolling="no" width="670" height="350" src="popUp.html" ></iframe> 
 
</div> 
 
</body> 
 
</html>

+0

Как вы его теперь будет срабатывать на документ готовы, так что даже если пользователь уже вошел в систему, если обновление страницы происходит это вызовет это. Ссылка на действие входа в вашем коде отсутствует в любом месте, вы хотите, чтобы она срабатывала при входе в систему только правильно? – ecorvo

+1

У вас должна быть функция обратного вызова на кнопке входа в систему, чтобы вызвать всплывающее окно, если вы хотите, чтобы он показывал его при входе в систему. Если это то, что вы хотите подтвердить, и я с удовольствием сделаю что-нибудь для вас – ecorvo

+0

Предоставьте более подробную информацию о том, как ваш процесс входа в систему работает. Для кого-то не хватает подробностей, чтобы ответить на это правильно. – charlietfl

ответ

1

Захват Войти кнопку нажмите событие затем вызвать ваше всплывающее окно, как этот

$(function() { 
    $("login-btn-id").on("click",function(){ 
    $("#dialog").dialog({ 
     width : 710, 
     height : 410, 
     modal: true, 
     resizable: false,  
     draggable: false, 
    }); 
    }) 
}); 
+0

Это будет отображаться всплывающее окно каждый раз, вопрос не отображать всплывающее окно снова при обновлении. – Hemal

+0

Это будет отображаться всегда только при входе в систему, но после входа в него он не будет отображаться при обновлении.Код, который он поделил, будет отображаться всегда, даже после входа в систему, если пользователь обновится, он просил показать только при входе в систему, если я правильно понял @Hemal – ecorvo

0

Вы можете использовать PHP сессии для этого.

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

$_SESSION['popup']=1; 

И этот код будет работать:

if ($_SESSION['popup']==1){ 

?> 
<script> 
$(function() { 
    $("#dialog").dialog({ 
     width : 710, 
    height : 410, 
    modal: true, 
    resizable: false, 
    draggable: false, 
    }); 
</script> 
<?php 

$_SESSION['popup']==NULL; 
} 
0

Проблема:

Как перенаправить пользователя на другую страницу после входа в систему, поэтому использование обратного вызова в кнопке входа в систему не поможет вам здесь, вы должны использовать что-то, что сохраняет состояние, даже если pa ge обновляется и при загрузке документа.

Решение:

Один хитрый способ для достижения этой цели является использование Cookies.

Когда пользователь Войти и первый раз, когда ваше всплывающее окно откроется, установите печенье logged в true и тест, если это печенье является true не показывать всплывающее окно.

И если пользователь вышел из системы, удалите этот файл cookie.

Код:

Это отредактированный код:

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

$(function() { 
    var cookieValue = readCookie('logged'); 
    if(cookieValue !== "true"){ 
    $("#dialog").dialog({ 
     width : 710, 
     height : 410, 
     modal: true, 
     resizable: false,  
     draggable: false, 
    }); 
    document.cookie="logged=true"; 
    } 
}); 
Смежные вопросы