HTML. какая есть альтернатива фреймам?
css
спасибо, буду использовать ajax.
если не секрет, почему не хочешь использовать фреймы?
к тому же когда пыталась делать фреймы, то мое выпадающее меню перекрывалось фреймом с контентом. В итоге с начальником было решено отказаться от них вообще и найти какой-то
другой способ.
Вроде все было нормально: сервлет обрабатывает запрос, возвращает тестовую табличку,
кот обновляется при каждом вызове из меню. А как сделать, когда наряду с табличкой на возвращенной странице будет еще какой нибудь скрипт. Пока не знаю, как его прицепить, чтобы он работал?
спроси поточнее
у меня есть main.jsp вот с таким телом.
<body onload="init">
<div id="menu">
<%@ include file="menu.jsp" %>
</div>
<div id="content</script></div>
</body>
</html>
То есть вверху меню, а во втором слое у меня будет что то генерироваться с помощью сервлета и технологии ajax.
У меня есть скрипт который создает запрос сервлету и получает от него ответ:
Пока у меня в сервлете генерируется вот такая табличка
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
// RequestDispatcher dispatcher = request.getRequestDispatcher("scripts/test/test.js");
// dispatcher.include(request, response);
String table =
" <table>\n" +
" <tr>\n" +
" <td>" + id + "</td>\n" +
" <td>" + id + "</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>" + id + "</td>\n" +
" <td>" + id + "</td>\n" +
" </tr>\n" +
" </table>";
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
response.getWriter.write(table);
}
А что делать если у меня кроме этой таблички во втором слое будет еще какой нить скрипт?
Как его сгенерить с помощью сервлета? И можно ли вообще такое сделать?
Может не очень понятно написано
![](/images/graemlins/blush.gif)
<script>
var content;
function getContent(str) {
// content = document.getElementById("content");
var req;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest;
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
url = "content?id=" + str;
req.open("GET", url, true);
req.onreadystatechange = callback;
req.send(null);
function callback {
if (req.readyState == 4) {
if (req.status == 200) {
var response = req.responseText;
content.innerHTML = response;
}
}
}
}
function init {
content = document.getElementById("content");
}
</script>
А что делать если у меня кроме этой таблички во втором слое будет еще какой нить скрипт?Как его сгенерить с помощью сервлета? И можно ли вообще такое сделать?все равно не очень понятен вопрос
ну добавь в переменную table еще данные
table += "еще какой нить скрипт";
![](/images/graemlins/frown.gif)
почему то он не воспринимает скрипт в строке.
вот это?
table += "<script type=\"text/javascript\">alert(\"AJAX forever!\");</script>";
просто нужно, чтобы во втором так сказать слое была не просто какая-то там разметка, а вполне себе полноценная страничка со своими скриптами.
да, именно это
он то данные передает
виноват innerHTML
тестовый пример не работает:
<html><body>
<div id="content"></div>
<script type="text/javascript">
document.getElementById('content').innerHTML = 'UPS <script type="text/javascript">document.write("-");<' + '/script> UPS';
</script>
</body></html>
ajax предназначен для подгрузки данных, а не скриптов
![](/images/graemlins/frown.gif)
плохо.
надо будет искать еще какой-то выход.
Что мешает его написать в отдельном файле .js и загружать вместе со страницей?
Или так уж нужны динамические скрипты?
тойсть если собираетесь на нем писать, то и мыслить надо по-другому
а тогда подобных вопросов и не возникнет
ну это было бы идеально. Но думаю придется обойтись каким-нить другим способом загрузки скриптов. Пока я еще четко не знаю, как все будет. Как раз ищу ответы на вопросы, что можно а что нельзя.
Поищи в инете инфу про библиотеку prototype.js. Там есть реализация поддержки AJAX с возможностью выполнять подгруженные скрипты. Либо сама копай в направлении eval (innerHTML добавляет скрипты в DOM, но не выполняет их).
ajax предназначен для подгрузки данных, а не скриптовgoogle (точнее gmail) вроде как раз через подгрузку скриптов и работает
![](/images/graemlins/wink.gif)
и вообще, ботай json
Оставить комментарий
evgeniy
Есть страничка с меню и контентом. Нужно чтобы обновлялся только контент в зависимости от выбранного пункта меню.Как это можно сделать, если нельзя использовать фреймы?
Подскажите пожалуйста хороший способ.