Опитвам се да направя бутон предишен/следващ за мой проект. Ето съкратен код за него.
<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) за динамично генерираните iframe HTML файлове. Моят проект ще открие дали съществува точка на монтиране и съответно ще преименува на нова точка на монтиране, т.е. ако mountpnt0 съществува, създайте и използвайте mountpnt1, така нататък и така нататък, докато може. ТАКА! Грешката, която виждам, е, че променя номера на точката на монтиране, а не html файла. Пример iframe.src = /tmp/prevram0/html/page0.html. Щраквам върху следващия, хвърля ме към страница, която не е намерена грешка и се опитва да отиде на /tmp/prevram1/html/page0.html. Отново натискам next и след това той обръща другия номер, /tmp/prevram1/html/page1.html. Желаната операция ще бъде iframe.src = /tmp/prevram0/html/page0.html. Щраквам върху следващия, след което задава iframe.src на /tmp/prevram0/html/page1.html.
Съжалявам, ако това е объркано или няма много смисъл. По-голямата част от този проект е в Python и аз се стремя да използвам HTML/JS, за да създам функцията за отчитане на моя проект. Сравнително нов съм в Python, познавам го достатъчно прилично, но JS е изцяло нов за мен, така че се извинявам за всичките си (вероятни) главоболия, причиняващи грешки на noob. Но наистина бих искал някаква насока и насоки как най-добре да се справя с този проблем :)
Благодаря много на всички!
РЕДАКТИРАНЕ - Бързо уточнение.
РЕДАКТИРАНЕ 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 е единична кавичка.)