www.webdeveloper.com
Results 1 to 7 of 7

Thread: Chrome setAttribute (class)

  1. #1
    Join Date
    Apr 2003
    Location
    Rosemount, MN
    Posts
    2,287

    Chrome setAttribute (class)

    I have the following code (within an iframe), and it works. In Chrome, the class that I am using never is applied to the image. It gets set as an attribute in the tag, but the style is not applied. How can I fix this, or is this a Chrome bug?

    Code:
    <script type="text/javascript">
    	var is_cover = <?php echo $is_cover; ?>;
    	var ni = parent.document.getElementById('albumPhotos');
    	try{
    		var itm = '<img class="photoAlbum"';
    		if(is_cover=='1'){
    			itm += ' style="background-color:#cccccc;"';
    		}
    		itm += ' onclick="loadBody(\'photos\',\'id\',\'<?php echo mysql_insert_id(); ?>\');" src="http://img.publicsize.com/photo/<?php echo $dir; ?>/thumb/<?php echo $file; ?>.jpg" />';
    		var newdiv = parent.document.createElement(itm);
    	}catch(e){
    		var newdiv = document.createElement('img');
    		newdiv.setAttribute('onclick', "loadBody('photos','id','<?php echo mysql_insert_id(); ?>');");
    		newdiv.setAttribute('class', "photoAlbum");
    		newdiv.setAttribute('src', "http://img.publicsize.com/photo/<?php echo $dir; ?>/thumb/<?php echo $file; ?>.jpg");
    		if(is_cover=='1'){
    			newdiv.setAttribute('style', 'background-color:#cccccc;');
    		}
    	}
    			
    	if(is_cover=='0'){
    		ni.insertBefore(newdiv, ni.firstChild.nextSibling);
    	}else if(is_cover=='1'){
    		ni.insertBefore(newdiv, ni.firstChild);
    	}
    </script>
    My settings

    Browser :: FireFox 1.5
    Resolution :: 1152x864
    Connection :: Cable Modem 2Mbs

  2. #2
    Join Date
    Jun 2007
    Posts
    667
    Never use setAttribute unless direct assignment doesn't work, which in my experience only occurs with attributes passed to plugins.

    Try:
    Code:
    newdiv.className = "photoAlbum";
    Y_U U_G_A_E_U_ B_S_A_D_

  3. #3
    Join Date
    Apr 2003
    Location
    Netherlands
    Posts
    21,654
    and onclick
    Code:
    newdiv.onclick = function() {loadBody('photos','id','<?php echo mysql_insert_id(); ?>');};
    At least 98% of internet users' DNA is identical to that of chimpanzees

  4. #4
    Join Date
    Apr 2003
    Location
    Rosemount, MN
    Posts
    2,287
    @Sterling Isfine, That doesn't work it inserts it into the tag but that is it.

    @Fang, yours didn't even add it to the tag.
    My settings

    Browser :: FireFox 1.5
    Resolution :: 1152x864
    Connection :: Cable Modem 2Mbs

  5. #5
    Join Date
    Apr 2003
    Location
    Netherlands
    Posts
    21,654
    If it doesn't work then there is another problem with your script.
    Show the generated code.

    Another problem:
    Code:
    newdiv.style.backgroundColor = '#ccc;';
    At least 98% of internet users' DNA is identical to that of chimpanzees

  6. #6
    Join Date
    Dec 2003
    Location
    Bucharest, ROMANIA
    Posts
    15,428
    Why do you use that try/catch sequence? simply use standard DOM methods (with the DOM0 crossbrowser workarounds regarding the element.className='classname';, element.style.backgroundColor='#ccc' and element.onclick=function(){someFunction()})

  7. #7
    Join Date
    Jun 2007
    Posts
    667
    Quote Originally Posted by The Little Guy View Post
    @Sterling Isfine, That doesn't work it inserts it into the tag but that is it.
    I don't know what that means but the line will apply the CSS class, so the issue must be elsewhere.
    Y_U U_G_A_E_U_ B_S_A_D_

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles