Hallo Experten,
ich habe folgendes Problem: Habe mich für die übersichtliche Navigation einem AJAX Menu bedient. Dies funktioniert alles auch perfekt wenn man es online stellt. Möchte man es aber lokal ausführen, ist es mit IE8 nicht möglich. Hier kommt immer die Fehlermeldung "Zugriff verweigert" bei folgender Codezeile: xmlHttp.open("GET", navfile, false). Im FF funktioniert aber alles bestens. Die Datei müsste aber zwingend lokal ausgeführt werden und ich bin mittlwerweile am verzweifeln. Hat jemand dafür eine Lösung? Hier der komplette Code:
//config
var menu_active_class = "active";
var menu_leaf_class = "leaf";
var menu_open_class = "open";
var menu_closed_class = "closed";
//the default page that is displayed if URL ends in /
var menu_default_page = "index.php";
//state
var menu_current; // XML menu node of the current location
var menu_totop; // path to top folder from current location
// main function
// navfile : the URL to the navigation XML
// menu_id : id of the element into which to insert the navigation
function menu_main(navfile, menu_id) {
var xml = menu_loadXml(navfile);
if (!xml) return;
menu_create(xml, menu_id);
}
// navfile : the URL to the navigation XML
function menu_loadXml(navfile) {
var xmlHttp = false;
// Mozilla, Opera, Safari, IE7
if (typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
if (!xmlHttp) {
// before IE 6
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
xmlHttp = false;
}
}
}
if (!xmlHttp) {
alert("Sorry, your browser does not support AJAX!");
return false;
}
xmlHttp.open("GET", navfile, false);
xmlHttp.send(null);
// when on local file system browsers return 0 here
if ((xmlHttp.status==0) || ((xmlHttp.status>=200) && (xmlHttp.status < 400))) {
return xmlHttp.responseXML.getElementsByTagName("navigation")[0];
} else {
alert("AJAX error: "+ xmlHttp.status +" "+ xmlHttp.statusText);
return false;
}
}
// xml : the XML root node of the navigation XML
// menu_id : id of the element into which to insert the navigation
function menu_create(xml, menu_id) {
var url = location.href;
if (url.lastIndexOf("/") == (url.length-1)) {
url = url+menu_default_page;
}
if (url.lastIndexOf("?") >= 0) {
url = url.substring(0, url.lastIndexOf("?"));
}
if (url.lastIndexOf("#") >= 0) {
url = url.substring(0, url.lastIndexOf("#"));
}
menu_current = menu_getCurrentMenu(xml, url);
menu_totop = menu_getPathToTop(menu_current);
var main = document.getElementById(menu_id);
if (!main) {
alert("No element with id '"+ menu_id +"' found");
return;
}
var root = document.createElement("ul");
menu_traverse(xml, root);
main.appendChild(root);