|
|
|
| После нажатия пользователем кнопки страница изменяется функцией JavaScript, но факт изменения не сохраняется в History (кнопки вперед-назад в браузере не задействованы, нельзя нажать на них и вернуться к одному из предыдущих состояний). Например
Файл test.htm
<html>
<head>
<script src="test.js"></script>
</head>
<body>
<input type="button" value="Add Text" onClick="addText()"/><br/>
<span id="text"></span>
</body>
<html>
Файл test.js
function addText(){
var obj=document.getElementById("text");
obj.innerHTML=obj.innerHTML+"+NewText";
}
Чтобы сохранять изменения JavaScript в History приходится ввести еще одну функцию.
Файл test.js
function addText(){
var obj=document.getElementById("text");
obj.innerHTML=obj.innerHTML+"+NewText";
rewrite();
}
function rewrite(){
document.open();
document.write(document.documentElement.innerHTML);
document.close();
}
В Opera все работает, нажимая на кнопки назад-вперед в браузере можно выбрать одно из предыдущих состояний. В Explorer и Firefox кнопки назад-вперед так же начинают работать, но перезапись document-а [document.write(document.documentElement.innerHTML)] обнуляет document, в History остается предыдущая страница и добавляется еще одна – пустая.
Вопрос. 1. Как из самого документа полностью перезаписать текущий документ - document.write(?). 2. Или как по другому занести текущую страницу в History. | |
|
|
|
|
|
|
|
для: K
(13.12.2006 в 10:02)
| | 1. document.write есть перезапись потока документа . Если он сохраняет переменные, то ответ очевиден - перезаписать, а затем выполнить document.close().
2. Сделать переход на якорь; при этом якорь должен присутствовать на странице. Если его нет - создать (в плавающем слое, если не нужно двигать документ). | |
|
|
|
|
|
|
|
для: K
(13.12.2006 в 10:02)
| |
function rewrite(){
var h = document.documentElement.innerHTML;
document.open();
document.write(h);
document.close();
}
|
| |
|
|
|