是否有可能僅使用JavaScript和HTML - 使用以下3個頁面?是否可以重定向兩次?
在第1頁會有一個按鈕,點擊後會重定向到第二頁X秒,然後重定向到第3頁。
我知道這是可能在每個頁面和定時器使用JavaScript,但我不知道是否可以在頁面1中的一個JavaScript代碼中完成,就像計時器,然後重定向到第三頁。
是否有可能僅使用JavaScript和HTML - 使用以下3個頁面?是否可以重定向兩次?
在第1頁會有一個按鈕,點擊後會重定向到第二頁X秒,然後重定向到第3頁。
我知道這是可能在每個頁面和定時器使用JavaScript,但我不知道是否可以在頁面1中的一個JavaScript代碼中完成,就像計時器,然後重定向到第三頁。
爲了記錄,這種情況可以在一個頁面中實現。
說你有三個頁面,你想page1.html
上點擊重定向
<html>
<head>
<title>Page 1</title></head>
<body>This is page 1. <input type="button" onclick="toPage2()" value="Go to page 2." /></body></html>
到page2.html
<html>
<head>
<title>Page 2</title></head>
<body>This is page 2.</body></html>
,然後有page2.html
重定向到page3.html
,一段時間後
<html>
<head>
<title>Page 3</title></head>
<body>This is page 3.</body></html>
所有你需要做的我s獲得第2頁的源代碼,向其中注入一些javascript,然後將源代碼加載到瀏覽器中;這意味着第2頁不需要知道重定向行爲。因此,第1頁將成爲類似:
<html>
<head>
<title>Page 1</title>
<script>
// you can get the source of page 2 via ajax -- still meeting the requirement of javascript/html only.
var source2 = '<html><head><title>Page 2</title></head><body>This is page 2.</body></html>';
function toPage2() {
var page2 = document.open('text/html', 'replace');
var source2injected = inject(source2, 3000, 'page3.html');
window.history.pushState('', '', 'page2.html');
page2.write(source2injected);
page2.close(); }
var left = "<script>setTimeout(function(){window.location='",
middle = "';},",
right = ");</scr" + "ipt>";
function inject (source, time, destination) {
return source.replace('<body>', left + destination + middle + time + right + '<body>'); }
</script></head>
<body>This is page 1. <input type="button" onclick="toPage2()" value="Go to page 2." /></body></html>
我並不是說這是一個好主意,或者你實際上是試圖解決問題的正確的解決方案,但它確實回答你的問題。
我可以問你爲什麼要這樣做?你爲什麼不在用戶點擊按鈕時直接加載第3頁? – Elior 2014-09-13 09:32:19
也許你可以解釋你實際想要達到的目標,可能會有比一系列重定向(例如AJAX調用)更好的解決方案。 – lxg 2014-09-13 09:32:50
聽起來像點擊欺詐要求。通過。 – 2014-09-13 09:46:16