|
|
|
| Здравствуйте. Подключаю iframe блок вот так:rn
<iframe src="/blocks/sidebarR.php" width="265" height="1050" align="right" scrolling="no"></iframe>
|
Таким образом у меня подключается две html страницы, так как существует два тега html, body и т.д.
Вопросы:
1. Можно как-то по-другому подключить?
2. При нажатие на ссылку в iframe блоке, загружается страница в этом же блоке (в айфрейме), а надо чтобы страница загружалась не в этом блоке.?
3. Либо подскажите иной способ подгрузки блока, чтобы он не кешировался? | |
|
|
|
|
|
|
|
для: NE}|{UBOJ
(05.03.2013 в 20:53)
| | вы очень невнятно описали вашу проблему
если в файле с адресом /blocks/sidebarR.php имеются теги <html>, <body> и т.д.,
то при любом способе подключения этого файла на страницу, где уже имеются теги <html>, <body> и т.д. , общее количество тегов <html>, <body> и т.д. на странице у вас по-любому удвоится :)
-----------
1) существует способ добавления на страницу информации из другого файла
именно "добавления", а не "подключения"
почитайте http://xmlhttprequest.ru/ - там всё об этом
2) файл /blocks/sidebarR.php является вашим файлом, раз вы используете относительную ссылку на него
вам кто-то мешает во всех ссылках этого файла прописать target="_top" или target="_parent"?
3) пропишите тег <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> в файле /blocks/sidebarR.php | |
|
|
|
|
|
|
|
для: ЯСА
(06.03.2013 в 21:07)
| | Спасибо за ответ.
Но в файле по пути /blocks/sidebarR.php НЕ ИМЕЮТСЯ теги <html>, <body>.
За это спасибо не был знаком с такими возможностями target="_top" или target="_parent", но догадывался что это делается через target.
Если я отправляю заголовки Last-Modified и ETag, то у меня кешируется вся страница целиком, а у меня есть рандомный блок, поэтому его надо подключить либо аяксом либо айфреймом или ssi (пока только про эти варианты знаю), чтобы этот блок не кешировался, поэтому мне кажется что здесь я не могу использовать <META HTTP-EQUIV="Pragma" CONTENT="no-cache">???. Много противников айфреймов пишут, что они ухудшают СЕО, а так как сайт для себя делаю, то мне это важно и уже не знаю делать ли мне через айфреймы. Через ssi не получается, а XMLHTTPRequest не знаю как использовать, если можете приведите пожалуйста простой пример подключения блока через эту технологию. | |
|
|
|
|
|
|
|
для: NE}|{UBOJ
(07.03.2013 в 16:31)
| | 1. набор тегов <html><body></body></html>, если его нет в загружаемом в ифрейм файле, создаётся браузером автоматически
2. вам нужно вставить строку с META-тегом и проверить её работоспособность
и вам сразу перестанет что-то "казаться" - вы уже будете ЗНАТЬ
3. примеров использования по ссылке http://xmlhttprequest.ru/, кою я вам дал, - целый вагон и ещё маленькая тележка
каких ещё "простых примеров" вам надо? | |
|
|
|
|
|
|
|
для: ЯСА
(07.03.2013 в 18:01)
| | Вот так я написал синхронный XMLHttpRequest:
<script language="javascript">
var xmlhttp = getXmlHttp()
xmlhttp.open('GET', '/blocks/sidebarR.htm', false);
xmlhttp.send(null);
if(xmlhttp.status == 200) {
alert(xmlhttp.responseText);
}
</script>
|
А вот файл sidebarR.htm:
<div>Синхронный XMLHttpRequest</div>
|
Не работает ( | |
|
|
|
|
|
|
|
для: NE}|{UBOJ
(07.03.2013 в 19:01)
| | между <script> и первой вашей строкой вставьте определение функции getXmlHttp () - код её написан первым по ссылке | |
|
|
|
|
|
|
|
для: ЯСА
(07.03.2013 в 19:05)
| | Да, заработало. Пробую заменить несколько строк уже не работает где ошибка?
...
if (xmlhttp.status == 200) {
document.getElementById('sidebar-R').innerHTML = xmlhttp.responseText;
}
|
| |
|
|
|
|
|
|
|
для: NE}|{UBOJ
(07.03.2013 в 19:16)
| | в коде скрипта вы используете тег с id="sidebar-R", которого ещё нет на странице в момент исполнения скрипта
поместите скриптовой блок в самый конец кода, перед </body>, тогда заработает | |
|
|
|
|
|
|
|
для: ЯСА
(07.03.2013 в 19:34)
| | Огромное спасибо. Все работает. Пока вопросов нет! С каждым днем узнаю много нового. | |
|
|
|
|
|
|
|
для: ЯСА
(06.03.2013 в 21:07)
| | Как-то так это делается????
<script type="text/javascript">
xmlhttp.open('GET', '/blocks/sidebarR.php', false);
xmlhttp.send(null);
if (xmlhttp.status == 200) {
document.getElementById('sidebarR').innerHTML = xmlhttp.responseText;
}
</script>
|
| |
|
|
|