Remeber iFram SRC при обновлении родительской страницы

У меня есть интрасеть, которую я создаю, и изучаю веб-языки, когда я иду.

У меня есть базовая страница html / php, содержащая iFrame, в которую загружается большая часть моего содержимого.

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

Однако это означает, что iframe SRC также сбрасывается до значения по умолчанию.

Есть ли способ сохранить текущее значение SRC iframe при обновлении родительской страницы?

Вы можете установить переменную сеанса, чтобы сохранить текущий src.

В вашем случае я бы сделал следующее:

Все страницы, загружаемые в iframe могут содержать код для установки сеанса var.

 <?php session_start(); // before any output to the user-agent / browser /screen!!! $_SESSION['last_visited'] = $_SERVER['REQUEST_URI']; 

И на странице, отображающей iframe, вы можете просто сделать что-то вроде:

 <?php session_start(); // before any output to the user-agent / browser /screen!!! echo '<iframe src="', $_SESSION['last_visited'], '"></iframe>'; 

Что касается вашего вопроса о сохранении URL-адреса в базе данных.

Вы могли бы это сделать, но я бы просто сохранил его в cookie.

HTML

 <form action="whatever" method="post"> ... <input type="hidden" id="iframeSrc" name="iframeSrc"/> <input type="submit" onclick="addSrc()" value="Log in"/> </form> <iframe id="mybox" src="somepage"></iframe> 

JS

 function addSrc() { document.getElementById('iframeSrc').value = document.getElementById('mybox').src; } 

PHP

 $iframeSrc = $_POST['iframeSrc']; ... echo "<iframe id=\"mybox\" src=\"$iframeSrc\"></iframe>"; 

Почему бы просто не использовать Cookies

 function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } 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 eraseCookie(name) { createCookie(name,"",-1); } ) function createCookie(name,value,days) { if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires = "; expires="+date.toGMTString(); } else var expires = ""; document.cookie = name+"="+value+expires+"; path=/"; } 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 eraseCookie(name) { createCookie(name,"",-1); }