Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
Prev Previous Post   Next Post Next
  #1  
Old 01-11-2010, 04:51 AM
winstone winstone is offline
 
Join Date: Dec 2006
Posts: 68
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default YUI javascript, problem with IE

Hello,

I made a javascript code which works great on almost all browsers except Internet Explorer, can anyone please let me know what I'm doing wrong here,

The Javascript code is suppose to scan the document after it is loaded, look for anchor tags which contain the id pattern of "cityid_x", put all matched ids into an array, add event listener for matched ids, send a link to ajax.php to get the XML response, from that XML response get the specified tag content and put it into the html
Firefox, Chrome and Safari does all that without complaining, however IE apparently can't get the tag content from XML response and gives the error of Object Required on line : document.getElementById('ywcity').innerHTML = changecity.handler.responseXML.getElementsByTagNam e('ywcity')[0].firstChild.nodeValue;

here is the javascript code:
Code:
var changecity;
var city_ids = []; //city_ids is an array

function city_init()
{
	//get ids of all Anchors
	var i, ii, links;
	ii = 0;
	links = document.getElementsByTagName("a");

	for(i=0;i<links.length;i++)
	{
		//if id matches the pattern cityid_*, grab em and put them into the array of city_ids, in order of ii
		if(links[i].id.match(/^cityid_([0-9]+)/)) {
			city_ids[ii] = links[i].id;
			ii++;
		}
	}
	//Event listener for when you click on matched ids
	YAHOO.util.Event.addListener(city_ids, "click", send_changecity);
}
function send_changecity(e)
{
	var city_id = this.id.split(/^cityid_([0-9]+)/)[1];
	changecity = new vB_AJAX_Handler(true);
	changecity.onreadystatechange(handle_changecity);
	changecity.send("/ajax.php?do=changecity&city_id=" + city_id + SESSIONURL + "&securitytoken=" + SECURITYTOKEN);

	//stop page from reloading
	YAHOO.util.Event.stopEvent(e); 
	return false; 
}

function handle_changecity(e)
{
	if(changecity.handler.readyState == 4 && changecity.handler.status == 200)
	{
		if (changecity.handler.responseXML)
		{
			//a div inside html document <= content of a tag in xml response
			document.getElementById('ywcity').innerHTML = changecity.handler.responseXML.getElementsByTagName('ywcity')[0].firstChild.nodeValue;
			//additional items
		}
	}
}
YAHOO.util.Event.addListener(window, "load", city_init);
this is how html document looks like
HTML Code:
<div id="ywcity">Sydney</div>
<a id="cityid_2" href="ajax.php?do=changecity&city_id=2">Melbourne</a>
and here is an example XML response created by ajax.php
Code:
<ywdata>
	<ywcity>Sydney</ywcity>
</ywdata>
Thanks for your time
Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 12:31 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04435 seconds
  • Memory Usage 2,232KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (2)bbcode_code
  • (1)bbcode_html
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete