2016-05-25 8 views
0

Ich habe ein einfaches Skript, das beim Laden von einer separaten JS-Datei ausgeführt wird. Das Setup ist wie folgt:Ändern von Eigenschaften in IE mithilfe von JQuery; Änderungen nur beim Debuggen angewendet

var ddlPeriodeVan = $('[id$=ddlPeriodeVan]'); 
    var ddlPeriodeTot = $('[id$=ddlPeriodeTot]'); 
    chkPeriodeVanTot = $('[id$=chkPeriodeVanTot]').length > 0 ? $('[id$=chkPeriodeVanTot]') : $('[id$=rbPeriodeVanTot]'); 
    var periodeBereik = { van: 'ddlPeriodeVan', tot: 'ddlPeriodeTot', err: 'ddlPeriode', chk: chkPeriodeVanTot, label: 'Periode' }; 
    if (ddlPeriodeVan.length > 0 && ddlPeriodeTot.length > 0) { 
     if (chkPeriodeVanTot.length > 0) { 
      chkPeriodeVanTot.change(periodeBereik, changedCheckNummerBereik); 

      if (chkPeriodeVanTot.prop('checked')) { // checkbox aangevinkt, maak de waardevelden bewerkbaar 
       ddlPeriodeVan.prop('disabled', false).prop('readonly', false).css('background-color', '#FFFFFF'); 
       ddlPeriodeTot.prop('disabled', false).prop('readonly', false).css('background-color', '#FFFFFF'); 
      } else { // Disable en readonly aanzetten, achtergrond blauw en tekst op (leeg indien textbox/defaultwaarde indien dropdown) 
       // The debugger actually gets here and changes the properties correctly 
       // When there is no breakpoint, the changes have no effect 
       // When there is a breakpoint, the changes are made and remain visible 
       ddlPeriodeVan.prop('disabled', true).prop('readonly', true).css('background-color', '#AACAF4'); 
       ddlPeriodeTot.prop('disabled', true).prop('readonly', true).css('background-color', '#AACAF4'); 
      } 
     } 

Beim ersten page_load, chkPeriodeVanTot wird nicht geprüft und ddlPeriodeVan und ddlPeriodeTot sollten deaktiviert werden, nur lesbar und haben eine andere Hintergrundfarbe.

Das funktioniert in anderen Browsern (natürlich) gut, aber IE denkt anders darüber und ich weiß nicht warum.

Die seltsame Sache ist, wenn ich die Entwickler-Tools in IE11 und setzen Sie einen Haltepunkt in der Datei. Der Breakpoint wird getroffen und die Code-IDs werden wie erwartet geändert! Aktualisiert IE das DOM irgendwo, damit alle Änderungen verloren gehen?

EDIT

ich, dass Sie einen Haltepunkt nicht einmal notwendig ist, Einstellung herausgefunden. Wenn Sie das Fenster mit den F12-Entwicklertools geöffnet haben, ist das der Trick. Alles wird korrekt geladen. Closing F12 und erfrischende Pausen wieder ...

Antwort

0

In Ordnung, ich habe hier einige Microsoft Logik bekam:

In allen „modernen“ Browser, window.console selbst erstellt, wenn Sie dies nicht tun Lassen Sie den Debugger geöffnet. Für IE ist window.console undefined, wenn der Debugger geschlossen ist.

ist ein interner Fehler, von denen Sie nie alle Ihre Skripte ausführen ...

Also nicht verwenden window.console zu stoppen verursacht geworfen sehen ist (Sie sollten in der Produktion Code nicht) oder Scheck wenn die Konsole vor der Verwendung undefiniert ist.

Verwandte Themen