Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Обновление iframe (https://javascript.ru/forum/dom-window/16255-obnovlenie-iframe.html)

slayer110 31.03.2011 15:51

Обновление iframe
 
есть iframe в который загружаются странички! При обновлении главной страницы В iframe всегда загружается начальная страница, как средствами js сделать что бы обновлялась текущая загруженная страница?

kostr 31.03.2011 18:59

При загрузке новой странички заносите адрес в куки. А при загрузке главной его оттуда читайте.

slayer110 31.03.2011 19:07

не могли показать какой скрипт это делает, потому что я в js новичок

kostr 31.03.2011 19:21

Ну, скрипт вам надо писать самим, я ж не знаю, как у вас странички грузятся. А функции для работы с куками есть тут:
http://javascript.ru/unsorted/top-10...e-deletecookie

melky 31.03.2011 19:28

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

политика безопасности

monolithed 31.03.2011 19:44

Цитата:

Сообщение от slayer110
как средствами js сделать что бы обновлялась текущая загруженная страница?

если страница во фрейме загружается с того же домена, то достаточно сделать так:
window.location.href = top.location.href;

kostr 31.03.2011 19:50

Ну я так поняла, что странички уже подгружаются? Надо только запомнить последнюю?

slayer110 31.03.2011 20:34

да, вот код странички
<title>Untitled Document</title>
<script type="text/javascript">
function frameFitting() {
document.getElementById('demo_frame').height = document.getElementById('demo_frame').contentWindo w.document.documentElement.scrollHeight;
}
</script>
</head>

<body><a href="str1.html" class="lvl1" target="demo_frame" title="Governance">str1</a>
<a href="str2.html" class="lvl1" title="Info" target="demo_frame" >str2</a><br/>


<div style="height:100%">

<div style="margin-left:201px;
margin-right:196px;
background-color:#996600;
height:auto;

">

<iframe style="width:600px; ; margin:10px;
" id="demo_frame" onload="frameFitting()" scrolling="no" frameborder="0" marginheight="0" ></iframe>
</div>
<div style="background-color:#666666; ">Niz Site</div>
</div>


</body>
</html>

slayer110 31.03.2011 20:39

window.location.href = top.location.href я это вставил тоже самое получилось

kostr 31.03.2011 21:02

В скрипт надо добавить:
// возвращает cookie если есть или undefined
function getCookie(name) {
 var matches = document.cookie.match(new RegExp(
   "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
 ))
 return matches ? decodeURIComponent(matches[1]) : undefined 
}

// уcтанавливает cookie
function setCookie(name, value, props) {
 props = props || {}
 var exp = props.expires
 if (typeof exp == "number" && exp) {
  var d = new Date()
  d.setTime(d.getTime() + exp*1000)
  exp = props.expires = d
 }
 if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }

 value = encodeURIComponent(value)
 var updatedCookie = name + "=" + value
 for(var propName in props){
  updatedCookie += "; " + propName
  var propValue = props[propName]
  if(propValue !== true){ updatedCookie += "=" + propValue }
 }
 document.cookie = updatedCookie
}

// удаляет cookie
function deleteCookie(name) {
 setCookie(name, null, { expires: -1 })
}

function ifr_last() {
 var adr = getCookie('adr');
 if (adr)
  document.getElementById('demo_frame').src = adr;
}


и изменить BODY и ссылки:

<body onload="ifr_last()">

<a href="str1.html" class="lvl1" target="demo_frame" title="Governance" onclick="setCookie('adr', 'str1.html')">str1</a>
<a href="str2.html" class="lvl1" title="Info" target="demo_frame"  onclick="setCookie('adr', 'str2.html')">str2</a>


Кстати, вы там в IFRAME не пропустили атрибут случайно:
name="demo_frame"


Часовой пояс GMT +3, время: 18:33.