Simple DOM Scripting question. (need help)

Discussion in 'Web Design and Development' started by radiantm3, Dec 27, 2005.

  1. macrumors 65816

    radiantm3

    Joined:
    Oct 16, 2005
    Location:
    San Jose, CA
    #1
    As you may know, there's a flickr script that adds the latest few flickr images to your website. The problem with it is that when you click on an image, it doesn't open it in a new window. I have javascript code that pops up links into new windows if it has a
    Code:
    class="pop"
    attached to it. I want to add this class to the code that flickr generates.

    Here is what I have, but it doesn't work:

    Code:
    	var flickrLinks = document.flickr.getElementsByTagName("a");
    	for (var i=0; i<flickrLinks.length; i++){
    		flickrLinks[i].setAttribute("class", "pop");
    	}
    
    Basically the code on my site looks like this: (I removed unnecessary code just for the illustration)

    Code:
    <div id="flickr">
    	<div class="flickr_badge_image">
    		<a href="#"><img /></a>
    	</div>
    	<div class="flickr_badge_image">
    		<a href="#"><img /></a>
    	</div>
    	<div class="flickr_badge_image">
    		<a href="#"><img /></a>
    	</div>
    ...
    </div>
    
    I want to add a pop class to all the link tags within the flickr div. I'm not even sure if there's anyone here who's experienced with DOM scripting, but I just thought i'd ask.

    I guess another solution would be to write a script that pops up any link within the flickr div, but I'm not sure how to do that.
     
  2. macrumors 68000

    Joined:
    Aug 20, 2003
    Location:
    Long Beach, California
    #2
    I would change:

    Code:
    flickrLinks[i].setAttribute("class", "pop");
    to (with the rest of the code, don't mind it if you're the adventurous type ;)):

    Code:
    if (flickrLinks[i].className == 'pop') {
    
    flickrLinks[i].onclick = function () {
    	
    				window.open(this.getAttribute('href'),'pop');
    				return false;
    	
    			}
    	
    			flickrLinks[i].onkeypress = flickrLinks[i].onclick;
    		}
    	}
    
    Then you can attach this as a function, and then run the function as an onload event if you'd like. Hope that helps.
    -Chase
     
  3. thread starter macrumors 65816

    radiantm3

    Joined:
    Oct 16, 2005
    Location:
    San Jose, CA
    #3
    Thanks for the help. :)
     

Share This Page