This is test page that we navigate to as part of testing various navigation styles. It includes a form so that we can test saving and restoring of form data, and it needs to be long enough that we can test saving and restoring of scroll position.




Here are some form elements
that we can use for testing
 Male
 Female
 option #1
 option #2


Now

some

filler

so

the

doc

is

long

enough

to scroll.

This is an anchor point named "anchor1".

============== Back Forward List ==============
        http://127.0.0.1:8000/navigation/javascriptlink-basic.html  **nav target**
        http://127.0.0.1:8000/navigation/resources/javascriptlink.html  **nav target**
curr->  http://127.0.0.1:8000/navigation/resources/success200.html  **nav target**
===============================================
