2014-09-13 2 views
1

가능합니까? JavaScriptHTML - 다음과 같은 페이지가 3 개 있습니까? 페이지 1에서 두 번 리디렉션 할 수 있습니까?

는 클릭 할 때 X의 초 동안 페이지 2로 리디렉션하고 나는 그것이 각 페이지 및 타이머에서 자바 스크립트를 사용 가능하다 알고 3.

페이지로 리디렉션,하지만 난 어떤 것이라는 버튼이있을 것 하나의 단일 JavaScript 코드에서 Page1에 수행 할 수 있는지, 타이머와 같은 작업을 수행 한 다음 세 번째 페이지로 리디렉션하는지 여부는 알 수 없습니다.

+0

왜 내가하고 싶은지 물어볼 수 있습니까? 사용자가 버튼을 클릭 할 때 페이지 3을 직접로드하지 않는 이유는 무엇입니까? – Elior

+6

실제로 달성하고자하는 것을 설명 할 수 있지만 일련의 리디렉션 (예 : AJAX 통화)보다 나은 해결책이 될 수 있습니다. – lxg

+0

클릭 사기 요구 사항처럼 들립니다. 패스. –

답변

2

기본적으로 아니요. 하지만 즉시 자신을 모순 : 당신은 프레임을 사용하여 할 수 있지만 그/그녀의 says 궁극적 인 목표를 달성하기 위해 더 나은 방법이있을 때 나는 Ixg 함께 해요.

기본적으로 프레임을 사용하여 작업 : Page1을 클릭해도 Page1의 페이지가 사라지는 대신 페이지 1의 콘텐츠가 전체 페이지를 채우는 iframe으로 대체되고 Page2의 콘텐츠가로드됩니다. 그런 다음 Page1의 JavaScript 환경이 여전히 존재하므로 준비가되면 Page2 또는 Page3에 대한 수정없이 페이지 3으로 리디렉션하기 위해 타이머를 사용할 수 있습니다 (물론 Page2에는 프레임 버스트가 내장되어 있지 않는 한).

+0

네, 고맙습니다. – Hec46

0

기록을 위해이 시나리오는 하나의 단일 페이지로 구현 될 수 있습니다.

는 잠시 후, page3.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을 가지고 page1.html를 원하는, 당신은 세 페이지가 말

<html> 
    <head> 
    <title>Page 3</title></head> 
    <body>This is page 3.</body></html> 

내가해야 할 일 모두 페이지 2의 소스를 가져 와서 일부 자바 스크립트를 삽입 한 다음 소스를 브라우저에로드합니다. 이는 페이지 2가 리디렉션 동작을 인식 할 필요가 없다는 것을 의미합니다.

<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> 

나는 이것이 좋은 아이디어 나 당신이 실제로 해결하려고하는 문제에 대한 올바른 해결책이 말하고 있지 않다, 그러나 당신의 질문에 대답 않습니다 따라서, 페이지 1 뭔가처럼 될 것입니다.

관련 문제