Я пытаюсь сделать кнопку «предыдущая/следующая» для моего проекта. Вот урезанный код для него.
<html>
<head>
<script>
function prevP() {var element = document.getElementById("framePage");
element = element.src;
elementLen = element.length;
elementLen = elementLen-6;
elementChar = element.charAt(elementLen)
elementChar = --elementChar
newElement = element.replace(element.charAt(elementLen),elementChar);
document.getElementById("framePage").src=(newElement);}
function nextP() {var element = document.getElementById("framePage");
element = element.src;
elementLen = element.length;
elementLen = elementLen-6;
alert(elementLen);
elementChar = element.charAt(elementLen)
elementChar = ++elementChar
newElement = element.replace(element.charAt(elementLen),elementChar);
document.getElementById("framePage").src=(newElement);}
</script>
</head>
<body>
<iframe src="www.websiteendingwithnumber1.com" id="framePage"></iframe>
</br>
<input type="button" onClick="prevP()" value="Previous">
<input type="button" onClick="nextP()" value="Next">
</body>
</html>
Мой проект создает примерно 40-120 html-страниц для отображения в iframe. Вы используете кнопку «Предыдущий/Далее», чтобы пролистать их. Каждая страница имеет динамическое имя с числом в конце. Например, /path/mountpoint0/page/page0.html, page1.html ... page5.html, и так далее, и тому подобное. Я пытаюсь сделать так, чтобы каждая из этих функций читала текущий URL-адрес iframe src, а затем устанавливала его на желаемый src в зависимости от нажатой кнопки. В основном, если вы находитесь на странице 5, он нарежет строку и установит src на страницу 4, если вы нажмете предыдущую, страницу 6, если вы нажмете следующую, и т. д. и т. д.
Предостережение! У меня также есть динамически сгенерированная точка монтирования (ramdisk) для динамически сгенерированных HTML-файлов iframe. Мой проект обнаружит, существует ли точка монтирования, и соответственно переименует ее в новую точку монтирования, IE, если существует mountpnt0, создаст и использует mountpnt1, и так далее, и так далее, пока не сможет. ТАК! Ошибка, которую я вижу, заключается в том, что она меняет номер точки монтирования, а не html-файла. Пример iframe.src = /tmp/prevram0/html/page0.html. Я нажимаю «Далее», выдает ошибку «Страница не найдена» и пытается перейти к /tmp/prevram1/html/page0.html. Я снова нажимаю «Далее», а затем переворачивается другой номер, /tmp/prevram1/html/page1.html. Желаемая операция будет следующей: iframe.src = /tmp/prevram0/html/page0.html. Я нажимаю «Далее», затем он устанавливает iframe.src в /tmp/prevram0/html/page1.html.
Извините, если это запутанно или не имеет большого смысла. Большая часть этого проекта была написана на python, и я хочу использовать HTML/JS для создания функции отчетности моего проекта. Я довольно новичок в python, достаточно хорошо разбираюсь в этом, но JS для меня совершенно новый, поэтому я прошу прощения за все мои (вероятные) головные боли, вызывающие ошибки нуба. Но мне бы очень хотелось получить некоторые указания и рекомендации о том, как лучше всего справиться с этой проблемой :)
Большое спасибо всем!
РЕДАКТИРОВАТЬ - Быстрое уточнение.
РЕДАКТИРОВАТЬ 2 - Я хочу поблагодарить всех за их большой вклад! Я очень, очень ценю это! Сейчас я занимаюсь некоторыми делами на работе, поэтому, когда у меня будет возможность еще немного поработать над своим проектом, я опробую ваши предложения и посмотрю, что получится :) Еще раз спасибо, ребята (и девочки?)!
РЕДАКТИРОВАТЬ 3 - window.onload = function () {pageNo = 0; baseUrl = document.getElementById('+q1+'baseurl'+q1+').innerHTML; }
window.onload = function(){
lPageNo = document.getElementById('+q1+'lPageNo'+q1+').innerHTML;
}
function prevP() {
if(pageNo > 1) { pageNo--; }
var prevEl = document.getElementById('framePage');
prevEl.src = baseUrl + pageNo + '.html';
}
function nextP() {
if(pageNo<lPageNo) { pageNo++; }
var nextEl = document.getElementById('framePage');
nextEl.src = baseUrl + pageNo + '.html';
}
<span id="baseurl" style="display:none;">'+prevram+'/html/page</span>
<span id="lPageNo" style="display:none;">'+str(ptit)+'</span>
(prevram , q1 и ptit — это переменные Python в моем скрипте Python. prevram — это точка монтирования, а ptit — счетчик номеров страниц. q1 — одинарная кавычка.)