[thelist] Save me from JavaScript humiliation

Fred D Yocum fdy at mcc.org
Mon Feb 12 08:41:57 CST 2007

I am struggling with a JavaScript function which I cannot get to work.
The script should do three things
1) Stop the default action from happening (loading into the current 
browser window)
2) Display a message after the link text saying appearing gradually and 
disappearing "Opening in a new window"
3) Open in a new window. 

In debugging, seems to be go through the script in the right order. But 
... the message is not displayed and the link opens in the current window. 
I have tried all sorts of configurations with little or no success. Put 
aside your concerns about opening content in new windows. This is on a 
internal page, indexing 600+ documents in various formats in an up to 8 
level deep list of lists. I want people to be able to drill down and be 
able to come back to where they were, without the page refreshing loosing 
their place.

--Here is the annotated function which is assigned to links from a onload 
function openInNewWindow() {
        //Gather variable
        var thisLink = this;
        //Create a span
        var alertMessage = document.createElement('span'); 
        //Creat text for span
        var messageText = document.createTextNode(' Opening in new window 
        //give it a class
        alertMessage.setAttribute('class', 'alertText01'); 
         //append text to span
         //Apppend the message to the link 
        var aniAlert = thisLink.appendChild(alertMessage);
        //Define two functions
        // Window open called from alertBlink
        function openWindow() { 
                var newWindow = window.open(thisLink.getAttribute('href'), 
                return false; 

        //Define appearing text
        function alertBlink() {
                //Scroll through classes that change the text from light 
grey to red to display:none
                alertClass = aniAlert.getAttribute('class');
                if (alertClass == 'alertText01'){
                else if (alertClass == 'alertText02'){
                else if (alertClass == 'alertText03'){
                else if (alertClass == 'alertText04'){
                //If it does not have the final class repeat
                if (alertClass != 'alertText05'){
                setTimeout(alertBlink(), 5000); 
                //Else open window
                else {
                setTimeout(openWindow(), 25000); 

        alertBlink(); //Final of new Window open


---End script

You can find it in non working order here -- use the temp link at the top 
of the page:

Save me from javascript hell...
Fred D Yocum

More information about the thelist mailing list