2011-01-25 9 views
3

다음은 간단한 설명입니다. iWebKit을 사용하여 웹 페이지를 전체 화면 iPhone 앱으로 표시하고 있습니다. 이렇게하면 부동산을 얻지 만 탐색 버튼을 잃게됩니다. 페이지에 앞으로/뒤로 움직이는 버튼을 넣고 그 기능을 다시 얻을 수 있습니다. 이 버튼과 같은 줄에 다른 콘텐츠 (예 : '집'버튼 및 제목)를 넣을 수 있으므로 바람직합니다.Javascript가있는 브라우저 기록에 다음 페이지가 있는지 확인할 수 있습니까?

나는이 자바 스크립트 기반의 전달 표시를 제어 할 수 있기를 바랍니다. 뒤로 가기 버튼 등이 있습니다. 실제로는 다음 또는 이전 페이지가 있는지 여부에 따라 다릅니다. 예를 들어 다음 페이지가 없으면 다음 버튼이 회색으로 표시되어 클릭 할 수 없습니다. 버튼이 표시되는 방식을 제어 할 수 없으면 클릭 할 수는 있지만 효과가 없습니다. 이로 인해 사용자 혼란이 야기 될 수 있습니다.

결론적으로, 실제로 액세스 할 수있는 데이터가 있는지 알고 싶습니다.이 데이터는 내역에 다음 페이지가 있는지 여부를 알려줍니다. 그리고, 그 문제에 대해서는, 이전 페이지. 내 독서에서 보안상의 이유로 history.next이 숨겨져 있습니다. history.forward()history.go(1)은 실제로 페이지를 전환하는 방법으로 만 유용하며 해당 페이지가 있는지 확인하지는 않습니다. history.length()는 기록에 몇 페이지가 있는지 알려주지 만 AFAIK는 대기중인 페이지의 위치를 ​​파악할 수 없습니다.

브라우저 기록에 다음/이전 페이지가 있는지 확인할 수있는 방법이 있습니까? 파이어 폭스 4b9에서 나는 브라우저의 역사를 볼 수있는 경우 보안 문제가있을 것 이해하지만 이상하게도

+0

질문을 이해할 수 없지만 왜 history.next가 숨겨져 있다고 말합니까? 다음 링크에 따르면 숨어 있지 않습니다 http://www.exforsys.com/tutorials/javascript/javascript-history-object-properties-and-methods.html –

+0

history.next는 정의되지 않은 것을 반환합니다. 적어도 그것은 내 브라우저가 반환하는 것이며, "history.next가 정의되지 않은 상태로 반환됩니다"라고 검색 한 결과 보안상의 이유로 액세스 할 수 없다고합니다. 웹 페이지가 브라우저 기록의 URL에 액세스하는 것을 원하지 않을 것입니다. – wdahab

+2

분명히하기 위해 명확하지 않은 경우 다음 페이지의 내용을 실제로보고 싶지 않습니다. 나는 그것이 있는지 여부를 알고 싶다. 그것은 나에게 충분히 무해한 것 같지만, 아마도 나는 틀렸다. – wdahab

답변

0

는, I (쉽게) 현재의 역사를 나열 관리 :

var i, h = window.history, o = document.getElementById("output"); 

o.innerHTML = "<b>" + window.location.href + "<\/b><br>"; 

for (i = 0; i < h.length; i++) 
    o.innerHTML += h[i] + "<br>"; 

이 목록에서 마지막 항목 및/또는 첫 번째 항목이 window.location.href (모든 속성이 history.current 인)이 = S인지 여부를 확인할 수 있습니다. 그것들 중 하나와 일치하는 경우, 이 목록의 처음이나 끝에있을 수 있습니다 (그러나 목록의 중간에 동일한 주소에있을 수도 있습니다). 그렇지 않다면, 당신은 확실히 역사의 가장자리에 있지 않습니다.

이제 나쁜 소식 : 당신이 웹킷 기반 브라우저에이를 적용 할로, 나는 크롬에 위의 코드를 테스트하지만, window.history의 배열 같은 항목이 없었다.

+0

ㅎ, 재미있는 해킹과 확실히 큰 보안 구멍. Chrome을 사용해야하는 좋은 이유입니다. :) 물론, 제 경우에는 WebKit 지원이 필요하기 때문에 단점이 있습니다. – wdahab

0

큰 보안 문제가 있습니까?! 브라우저는 이미 리퍼러로 서버를 핑 (ping)합니다.이 문제만으로 주소에 민감한 정보 (예 : $ _GET의 비밀번호 전달)를 포함 할 수 없다는 것은 잘 알려진 사실입니다.

이전 페이지에 액세스 할 수 있다는 것을 알고 있습니다. 사실을 알고 있습니다.

관련 문제