Ngoài history.length trong JavaScript, bạn có thể đọc/ghi tên cửa sổ. Vì vậy, nếu bạn kiểm tra xem nó có tải tên không ... nó nên để trống trên lần tải đầu tiên ... nếu bạn sau đó đặt nó thành "foo" ... trên mỗi lần tải tiếp theo trong cửa sổ đó ... thuộc tính window.name sẽ trả về "foo" ... trừ khi bạn mở liên kết trong tab/cửa sổ mới ... cửa sổ mới sẽ không có tên được đặt.
(tất nhiên trừ khi bạn mở một popup qua window.open (url, tên, tính năng); cho phép bạn đặt trước tên)
<script>
if(window.name == ''){
//first load (or Nth load in a new Tab/Window)
if(!SOME_VALUE_SET_FOR_2ND_TO_NTH_LOADS){
//set name so we can catch new Tab/Window
window.name = 'myWinName';
} else {
//we have a new Tab/Window (or something funky)
alert('What?! One window not cool enough for ya?\n' +
'Calling the InterWeb Police!');
}
} else if(window.name == 'myWinName'){
//2nd-Nth load
document.title = 'All is well... we think';
}
</script>
Hãy cẩn thận:
- Nếu trang của bạn ban đầu được tải trong cửa sổ/khung hình đã có tên ...Mọi thứ sẽ bị quirky
- Nếu trang của bạn có iframe và bạn có bất kỳ liên kết nào được nhắm mục tiêu vào iframe đó, có lỗi trong IE7/8 theo đó người dùng mở các liên kết đó trong tab/cửa sổ mới, tab mới/cửa sổ sẽ "kế thừa" tên của khung nội tuyến được nhắm mục tiêu ban đầu (rất lỗi ODD mà không có lỗi nào được mong đợi)
Bạn cũng có thể xem history.previous ... –
@ Jason: Tôi nhận được các lỗi về quyền trong Firefox khi tôi thử xem history.previous. – RichieHindle
@RichieHindle: hmmm ... Tôi đã cố gắng đặt ngón tay lên đó ... nhưng yep ... đó là lý do tôi hút ... –