Solved

Urgent - window scroll / anchor jump in IE4.0x on Mac & PC

Posted on 2001-06-19
9
288 Views
Last Modified: 2012-06-27
I want to be able to jump half way down a long page when the user posts a form to the page.

I have this working in Netscape 4+ on Mac and PC using
  document.location='#step3'
in the onLoad function, but have not managed to get it working on IE4.0x

I was hoping to use some sort of anchor jump, rather than scrolling, but using document.location='#step3'  to jump does a GET to the page in IE4, rather than just scrolling the already loaded page, resulting in a fresh page, and the posted data being lost from the form I just posted to it.
Also, there are NO form input elements I can focus to (such as text, buttons etc) at the point I want to jump to, just an anchor and plain text. I don't want to add any stange visible elements such as buttons or text inputs.

I have tried the following:
-  document.location.hash='#step3'
-  document.location.hash='step3'
-  <form ... action="mypage.jsp#step3">
-  window.scrollBy(0,300)
-  document.anchors.step3.focus()
-  document.anchors.step3.blur()
-  step3.focus()
-  step3.blur()

None seem to  work in IE4.01 on the Mac... the closest I got was with step3.focus() but the window contents are all messed up.

The correct answer MUST work on IE4.01 on both the Mac and PC. Got Netscape covered :)

Awaiting with baited breath...
0
Comment
Question by:jjoz
  • 5
  • 3
9 Comments
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 6206397
Try
document.all('step3').scrollIntoView();
or
document.anchors('step3').scrollIntoView();
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 6206411
Either work in IE5.5 on Windows NT - I expect them to work on IE4 on windows and also on mac

MSDN says
Platform Version
Win16: 4.0
Win32: 4.0
WinCE: 4.0
Unix: 4.0
Mac: 4.0

http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/scrollIntoView.asp

0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 6206443
Here is the xbrowser code

<body onLoad="if (document.all)
document.all('step3').scrollIntoView();
else if (document.anchors &&
document.anchors['step3'] &&
document.anchors['step3'].x)
window.scrollTo(document.anchors['step3'].x,document.anchors['step3'].y) ">

and in case you can breathe again: http://www.google.com/search?sourceid=navclient&q=baited+bated
;-)

Michel

0
 
LVL 1

Author Comment

by:jjoz
ID: 6208754
The xbrowser code does work on all 4+ browsers on the PC, but does not seem to work on IE4 OR IE5 on the Mac.

Any further ideas? Any Mac experts out there?
0
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 1

Author Comment

by:jjoz
ID: 6208803
Found this on <http://screenporch.com/sp/41/PATCH/>

Browser bug fix:  IE 4 and 5 for the Macintosh do not "scroll" properly to new responses in an item.  
IE uses "scrollIntoView()" to a <SPAN> to handle showing the 1st new response at the top of the page.  IE/Mac doesn't like it if the <SPAN> is empty.  For now, just adding a non-breaking space inside the <SPAN></SPAN> works, although it adds a little vertical white space.  A better solution will appear later.

Again, <SPAN> seems to work for IE5 on the Mac, but not IE4.01 on the Mac. I am beginning to suspect there is no solution for this problem for Mac IE4.01.
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 6209346
Try this:

<head>
<script>
agt = navigator.userAgent.toLowerCase();
Opera = (agt.indexOf('opera'))
IE = (document.all && !Opera)
IEMac = (IE && agt.indexOf('mac')!=-1);
NS = (navigator.appName=='Netscape')

function scrollIt(anc) {
   if (IEMac) anc +="mac"
   if (IE) document.all(anc).scrollIntoView();
   else if (document.anchors &&
      document.anchors[anc] &&
      document.anchors[anc].x)
     window.scrollTo(document.anchors['step3'].x,document.anchors['step3'].y)
}
</script>
</head>

<body onLoad="scrollIt()">


<SPAN ID="step3mac"><a name="step3"></a></SPAN>
0
 
LVL 1

Author Comment

by:jjoz
ID: 6226713
Nice attempt, I already implemented something like this, but as I mentioned, it does not work on Mac IE4.01. Apologies for not responding earlier, but the project in question has finished and I had to cut my losses. (shipped without anchor jumping on Mac).

Unfortunately this did not solve the problem, but thanks for trying. I will leave the question open as I am still interested to see an answer if anyone comes up with one.
0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 6226787
You can also ask customer service to PAQ it

Michel
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
ID: 6427242
Points refunded, my comment accepted as answer to place in PAQ.

Thank you
Computer101
Community Support Moderator
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

The task A number given should be formatted for easy reading by separating digits into triads. Format must be made inline via JavaScript, i.e., frameworks / functions are not welcome. So let’s take a number like this “12345678.91¿ and format i…
This article discusses the difference between strict equality operator and equality operator in JavaScript. The Need: Because JavaScript performs an implicit type conversion when performing comparisons, we have to take this into account when wri…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now