我正在嘗試爲我的項目製作上一個/下一個按鈕。這裏是修剪它的代碼。上一個/下一個Javascript字符串處理?
<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>
我的項目在iframe中創建大約40-120個html頁面供顯示。您可以使用「上一個/下一個」按鈕翻閱它們。每個頁面在最後動態地用一個數字命名。例如/path/mountpoint0/page/page0.html,page1.html ... page5.html,依此類推。我試圖做的是基本上每個函數都會讀取iframe src的當前URL,然後根據您按下的按鈕將其設置爲所需的src。基本上,如果你在第5頁,將切片了繩子,並設置src到第四頁,如果你打以前,第6頁如果下次,等等等等
一個警告!我還爲動態生成的iframe HTML文件提供了一個動態生成的掛載點(ramdisk)。我的項目將檢測是否存在掛載點,並相應地將其重命名爲新的掛載點,如果mountpnt0存在,則使用IE,創建並使用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對我來說是全新的,所以我爲我所有的(可能)頭疼都引起了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是一個單引號)。
嗯...你能當掛載點是澄清決心? 它是由JavaScript,還是在服務器端? – user1600124
@ user1600124 - 該腳本實際上在本地機器上運行。它是一個python腳本,它會生成並掛載掛載點。腳本的另一部分生成網頁,其中包含的JS向您顯示了python腳本的結果,因此python腳本確定本地計算機上的掛載點並掛載它。 - 編輯澄清。 – 0xhughes
對不起,本週末遠離電腦.. 請問爲什麼用document.getElementById('+ q1 +'lPageNo'+ q1')?因爲span id只是「lPageNo」...是'+ q1 +'='「'? – user1600124