1. Welcome to the new MacRumors forums. See our announcement and read our FAQ

Simple DOM Scripting question. (need help)

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

  1. macrumors 65816

    radiantm3

    #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

    #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. macrumors 65816

    radiantm3

    #3
    Thanks for the help. :)
     

Share This Page