IE - Erlaubnis Verweigert
Stephan
- javascript
Hallo,
ich habe auf einer Website ein Formular das selbst aus mehreren Formularen besteht. Über eine Navigation aus Radiobutton werden die entsprechenden Formulare sichtbar geschaltet. Man kann also zwischen verschiedenen Formularen hin und her schalten.
Um beim wiederkehren auf die Seite (Historyback) zu gewährleisten, dass das korrekte Formular angezeigt wird, liest ein Javascript beim window.onload Event den aktivierten Radiobutton der Navigation aus und schaltet das entsprechende Formular auf sichtbar. Dieses Javascript wird bei jedem Aufruf der Seite ausgeführt.
Wird die Seite einmal per Back-Button aufgerufen, kommt es bei weiteren Aufrufen der Seite auf allen IE zu einem Javascript-Fehler: "Erlaubnis verweigert".
Das Div-Elemente in dem das Formular sich befindet wird, obwohl von Javascript nicht angefasst, dabei nicht mehr angezeigt.
Meine Recherchen haben ergeben, dass dieser Fehler eigentlich nur bei Zugriff mittels Javascript auf Inhalte von fremden Domains ausgelöst wird, die sich in Frames oder iFrames befinden. Auf der Website gibt es aber weder Frames noch iFrames und die Javascript-Datei wird vom selben Server geladen.
Hatte jemand schonmal ein ähnliches oder gar gleiches Problem?
hat jemand eine Lösung parat?
Danke,
Stephan
Hallo,
es wäre hilfreich gewesen, einen Link zu einer Beispielseite oder, falls Du keinen Server hast, den Code der Seite in Deinem Post anzugeben (so weit gekürzt, dass das Problem gerade noch auftritt).
Kaum ein Forenteilnehmer wird sich die Zeit nehmen, Dein Problem nachzubauen.
Gruß, LX
Hallo,
ich verlange nicht, dass das Problem nachgebaut wird. Ich habe nur nach Erfahrungen mit diesem oder einem ähnlichen Problem gefragt.
Dennoch, hier das dazugehörige Javascript:
function QFormNavigation ( theme )
{
this.activeForm = null;
this.theme = theme;
this.init = function()
{
var parent = this;
var v = '';
var fi;
var QNavInp = new Array();
var QNavForm = document.getElementById("qfnav");
QNavInp = QNavForm.getElementsByTagName("input");
for ( var i = 0; QNavInp[i]; i++ )
{
/* QForm Navigation action */
QNavInp[i].onclick = function(){parent.callForm( this.value );}
/* QForm Navigation Historyback */
v = QNavInp[i].checked == true ? QNavInp[i].value : v ;
fi = this.theme == QNavInp[i].value ? i : fi ;
}
/* QForm Navigation Historyback */
if(v != '')
{
this.callForm ( v );
}else{
QNavInp[fi].checked = true;
this.callForm ( this.theme );
}
}
this.callForm = function( f )
{
try{
if(this.activeForm!=null){this.activeForm.style.display = 'none';}
} catch(e){
alert(e);
}
this.activeForm = document.getElementById( f );
this.activeForm.style.display = 'block';
}
this.getForm = function( f )
{
}
}
In welcher Zeile meldet der IE den Fehler? Verwende bei IE 7 einen JavaScript-Debugger wie den von Microsoft Visual Web Developer Express bzw. verwende besser gleich IE 8 für aussagekräftige Fehlermeldungen.
Mathias
In welcher Zeile meldet der IE den Fehler?
Zeile 1 Zeichen 1. Auf der Website ist dort keine Javascript und in der
Javascriptdatei ist bis Zeile 10 ein Kommentar.
»»Verwende bei IE 7 einen JavaScript-Debugger wie den von Microsoft Visual Web Developer Express bzw. verwende besser gleich IE 8 für aussagekräftige Fehlermeldungen.
Die Fehlermeldungen von IE7 + IE8 sind gleich.
Mathias
Danke
Stephan
Ich denke nicht, dass der Fehler von dem Scriptschnipsel herrührt, den du hier gepostet hast, sondern von anderen Umständen und anderem Code. Dein Code sieht nämlich völlig harmlos aus.
Ich könnte dir jetzt ein Beispiel machen, das das Feature umsetzt, ohne einen Fehler auszulösen - aber ich glaube nicht, dass dir damit geholfen wäre. Daher rate ich dir, in einer Kopie schrittweise alle Funktionalität zu deaktivieren und auf dieses eine Feature zu reduzieren, sodass nur der nötigste JavaScript-Code eingebunden wird. Dabei wird sich der Fehler vielleicht finden.
Mathias
Danke Mathias,
ich habe selber den Verdacht, dass es ein Runtime-Fehler ist. Ich hatte so etwas ähnliches schon mal, weis nur nicht mehr wie ich es damals gelöst hatte.
Der IE ist eigentlich noch nicht fertig mit dem Seitenaufbau, speziell mit dem initieren der Formularfelder. Das Javascript versucht drauf zu zugreifen, was der IE aber verhindert.
Stephan