Problem mit einer Ajax basierenden Suche und dem IE (Kompatibilitätsansicht)

xtramen01

Erfahrenes Mitglied
Hallo Leute,

ich habe mir anhand eines Tutorials, eine Ajax basierende Suche zusammen gebaut.
Die Funktioniert auch wunderbar.

Nun gibt es aber ein Darstellungsproblem im IE.
Der DIV Container "ajax_search" wird dort nämlich immer angezeigt, auch wenn keine Eingabe erfolgt.
Ich denke am CSS kanns nicht liegen.

Vielleicht kann mal jemand über den Code schauen und mir einen Tipp geben, wie man das lösen könnte.

Javascript:
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearch').value);
		searchReq.open("GET", 'ajax_suche.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest;
		searchReq.send(null);
	}
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		var ss = document.getElementById('ajax_search')
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		var count = 0;
		for(i=0; i < str.length - 1; i++) {
		count++;
			//Build our element string.  This is cleaner using the DOM, but
			//IE doesn't support dynamically added attributes.
			if (count == 1){

			var suggest = '<div onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="ajax_search_even">' + str[i] + '</div>';
			ss.innerHTML += suggest;

			}else{

			var suggest = '<div onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'class="ajax_search_odd">' + str[i] + '</div>';
			ss.innerHTML += suggest;

			}

			if (count == 2){
				count = 0;
			}
		}
	}
}

//Click function
function setSearch(value) {
	document.getElementById('txtSearch').value = value;
	document.getElementById('ajax_search').innerHTML = '';
}

Vielen herzlichen Dank und Gruss
 
Zuletzt bearbeitet von einem Moderator:
Poste doch mal bitte den HTML-Teil mit dem Input-Feld und dem DIV für die Suche. Der dürfte hilfreicher sein.
 
Zurück