API-Änderungen für Windows 8.1 (Windows Store-Apps mit JavaScript und HTML)

In diesem Dokument werden die in Windows 8.1 veralteten API-Elemente, Funktionsänderungen und Optimierungen aufgeführt. Weitere Migrationsressourcen finden Sie unter:

Wichtig  Weitere Informationen zu den API-Änderungen in Windows 8.1 im Zusammenhang mit der C#/VB/C++- und XAML-Programmierung finden Sie unter API-Änderungen für Windows 8.1 (Windows Store-Apps mit C#/VB/C++ und XAML).

Wichtige Elemente

Folgende API-Änderungen wirken sich am deutlichsten auf die App-Migration aus:

ÄnderungTyp
FenstergrößenmodellNeues Feature
ListLayout-GruppierungÄnderung
Migration von IFRAME zu WebViewÄnderung
Veraltete DOM-APIsÄnderung
Veraltete WinJS-APIsÄnderung

 

WinJS-Verbesserungen und neue Features

Wir haben erheblich in WinJS 2.0 investiert, um die Startzeit von Windows Store-Apps zu verkürzen, die Leistung beim Verschieben von Listen zu verbessern und den Speicherverbrauch zu verringern. Neue Features wie der Systemplaner, das Dispose-Muster und die verbesserte Unterstützung für ListView mit Aufteilung auf mehrere Zeilen beschleunigen die vorhandenen Szenarios. Die kombinierten Bindungsvorlagen verringern den Aufwand beim Darstellen mehrerer datengebundener Vorlagen in Steuerelementen. Die Entwickler werden viele dieser Vorteile ohne Änderungen am WinJS 1.0-Code erkennen, einige erfordern jedoch Änderungen an der WinJS-API. Wir empfehlen den Entwicklern, auf veraltete APIs zu verzichten, um die beste App-Leistung zu erzielen.

Zudem verbessern die neuen Features in WinJS 2.0 die Leistung, sie ermöglichen eine erweiterte Plattformintegration, und sie sorgen für benutzerfreundlichere Szenarios. Neue Steuerelemente wie NavBar und ItemContainer ermöglichen es Entwicklern, ansprechendere Benutzeroberflächen zu schaffen. Für einfache Listen bietet der Repeater eine höhere Geschwindigkeit. Dank der AppBar-Verbesserungen kann die App-Leiste für mehr Geräte- und Fenstergrößen skaliert werden. Überlegen Sie beim Migrieren Ihrer App von WinJS 1.0 zu WinJS 2.0, wo Sie neue Plattformfeatures zum Erweitern und Verbessern Ihrer Windows 8.1-App einsetzen können.

Anwendungslebensdauer

Schneller Neustart nach dem Schließen

Wenn der Benutzer in Windows 8.1 eine App schließt und unmittelbar neu startet, kann die geschlossene App vor dem Neustart bis zu fünf Sekunden für die Beendigung aufwenden. In Windows 8 wird die App beim Neustart sofort beendet.

Anhalten der App bei niedriger Priorität

Um die Reaktionsfähigkeit des Systems zu verbessern, erhalten die Apps in Windows 8.1 auf angehaltene Ressourcen einen Zugriff mit geringerer Priorität. Der Timeout des Anhaltens wird entsprechend verlängert, sodass die App bei normaler Priorität über die Entsprechung von fünf Sekunden verfügt.

WinJS-Planung

In Windows 8.1 und der WinJS 2.0 wird mit WinJS.Utilities.Schedulerein Objekt/Namespace eingeführt, mit dem alle Verarbeitungswarteschlangen in einer zentralen, universellen Warteschlange konsolidiert werden. Die neue Warteschlange bietet eine prioritätsbasierte Planungsrichtlinie, mit der Sie Ihre Arbeitsschritte priorisieren können, um das Reaktionsverhalten zu verbessern. Sie können Aufgaben planen und ihnen Prioritäten zuweisen, damit die gewünschten Vorgänge zum richtigen Zeitpunkt ausgeführt werden. Weitere Informationen zu Scheduler und damit möglichen Verbesserungen der Leistung Ihres Codes finden Sie unter Asynchrone Programmierung.

Dispose-Muster

Das "Dispose"-Modell ist ein neues Muster, das es Elementen und Steuerelementen ermöglicht, Ressourcen am Ende ihrer Lebensdauer freizugeben, um Arbeitsspeicherverluste zu verhindern. Ein Element oder Steuerelement kann diese API optional implementieren. WinJS 2.0-Steuerelemente mit Ressourcen, die freigegeben werden können, implementieren jetzt diese API. Um das "Dispose"-Modell zu nutzen, rufen Sie die "dispose"-Methode des Steuerelements auf, wenn es nicht mehr benötigt wird (z. B. wenn der Benutzer die Seite verlässt oder die App beendet). Informationen zum Implementieren des "Dispose"-Musters in einem benutzerdefinierten Steuerelement finden Sie unter Quickstart: Using the dispose model in WinJS. In dem Schnellstartartikel wird ein speicherintensives benutzerdefiniertes Steuerelement einer Beispiel-App hinzugefügt. Anschließend wird das "Dispose"-Modell implementiert. Die Speicherauslastung der App vor und nach dem Hinzufügen des "Dispose"-Musters wird verglichen.

WinJS.Binding.Templates

Beim Verarbeiten von Vorlagen erfolgen die Datenbindung und die Steuerelementinstanziierung in unterschiedlichen Reihenfolgen. Wenn Sie in einem Konstruktor Code für ein benutzerdefiniertes Steuerelement schreiben, bei dem davon ausgegangen wird, dass die Datenbindung bereits erfolgte, wird der Code möglicherweise nicht mehr wie bisher ausgeführt. In WinJS 1.0 verarbeiten die Vorlagen alle Steuerelementinstanziierungen und -initialisierungen vor der gesamten Datenbindung. In WinJS 2.0 erweitern die optimierten Vorlagen den Fluss bei der Steuerelementinitialisierung und Datenbindung. Sie können mit Template.disableOptimizedProcessing zur WinJS 1.0-Funktion zurückkehren. Bei der neuen Vorlagenverarbeitung handelt es sich um eine erhebliche Leistungsverbesserung.

ListLayout-Gruppierung

In Windows 8.1 unterstützt das ListLayout von WinJS 2.0 Gruppierungen. Daher können Sie ListLayouts mit der ListView.groupDataSource-Eigenschaft in Gruppen anzeigen. In WinJS 1.0 wurde die groupDataSource-Eigenschaft ignoriert. Um weiterhin über dieselbe UX zu verfügen, beachten Sie die folgenden erforderlichen Änderungen.

WinJS 1.0:


listView.dataSource = list.dataSource;
listView.groupDataSource = grouplist.dataSource;
if(view.snapped) {
    listView.layout = new ListLayout();
}
else {
    listView.layout = new GridLayout({groupHeaderPosition: 'top'});
}

WinJS 2.0:

listView.dataSource = list.dataSource;
listView.groupDataSource = grouplist.dataSource;
if(view.snapped) {
    listView.groupDataSource = null;
    listView.layout = new ListLayout();
}
else {
    listView.layout = new GridLayout({groupHeaderPosition: 'top'});
}

Das Reduzieren von Rändern von "ListLayout" wird nicht unterstützt

In Windows 8 verwenden Sie:


.win-container {
    margin-top: 10px;
    margin-bottom: 10px;
}

In Windows 8.1 wird das margin-bottom-Attribut entfernt:


.win-container {
    margin-top 10px;
}

ListLayout.win-container

Der ListLayout-Abstand sollte vom .win-container zum .win-item-Container verschoben werden. Dies wurde ursprünglich in Windows 8 nicht unterstützt, hatte jedoch aufgrund des Anzeigetyps des Layouts keinerlei negative Folgen. In Windows 8.1 entsteht eine Lücke zwischen dem Element und dem Auswahlrahmen. Verschieben Sie den Abstand in den ".win-item"-Container, und passen Sie die Ränder an die richtige Größe an, um diese Änderung zu vermeiden. Dieses Muster ist in der Visual Studio-Vorlage vorhanden. Die Vorlage "Split", die ListView im ListLayout sowie die Visual Studio- und MSDN-Elementvorlagen sind nicht betroffen.

Untergeordnete Kombinatorselektoren von "ListView"

Die untergeordneten Selektoren des ListView-Steuerelements funktionieren möglicherweise aufgrund der neuen Dokumentobjektmodellform (DOM) nicht richtig.

ListView.currentItem-Eigenschaft

Die currentItem-Eigenschaft gab bislang das aktuelle Element zurück, ohne die Kopfzeilenelemente zu berücksichtigen. In Windows 8.1 gibt sie das aktuelle Element unter Berücksichtigung der Kopfzeilenelemente zurück.

ListView.groupHeaderInvoked

In Windows 8.1 unterstützt ListView die Tastatureingabe der Gruppenkopfzeilen im GridLayout, ListLayout und CellspanningLayout.

ListView löst das groupHeaderInvoked-Ereignis aus, um anzugeben, dass eine Kopfzeile aufgerufen wurde. Es wird empfohlen, den onClick-Behandlungscode in das groupHeaderInvodked-Ereignis zu verschieben, damit alle Eingaben (Touch, Maus, Tastatur) für Gruppenkopfzeilen behandelt werden.

ListView.win-groupheader

Verschieben Sie die win-groupheader-Ränder in die win-groupleader-Klasse. Verwenden Sie zum Steuern der Ränder die neue Klasse .win-groupleader. Der Rand der App ändert sich deutlich.

Migration von IFRAME zu WebView

In Windows 8.1 kann das WebView-XAML-Steuerelement nur Windows.External.Notify-Meldungen von Websites erhalten, die den ApplicationContentURI-Regeln entsprechen und HTTPS verwenden. Diese Meldungen werden von der App empfangen, wenn diese das ScriptNotify-Ereignis behandelt.

IFRAME-Elemente in Windows Store-Apps mit JavaScript, die sich nicht in WebView-Steuerelementen befinden, können nicht zu HTTP-Websites navigieren. Ein IFRAME kann nur zu Paketinhalten oder HTTPS-URIs navigieren, die in den ApplicationContentURI-Regeln aufgeführt sind. WebView kann HTTP unterstützen, jedoch nicht folgende Elemente:

  • Geoloc
  • Programmgesteuerte Zwischenablage
  • AppCache
  • IndexedDB

Wechsel vom WebView-Steuerelement mit Fenstern zur fensterlosen Anzeige

In Windows 8.1 sind die WebView-Steuerelemente in Windows Store-Apps mit XAML oder JavaScript fensterlos. Zudem unterliegen sie der z-Reihenfolge für Apps. Die App-Leiste und Popups können im Vordergrund des WebView-Steuerelements angezeigt werden. Für Apps, die zum Umgehen dieser Einschränkung WebViewBrush verwendet haben, sollte diese Umgehung entfernt werden.

Diese Änderung betrifft Windows Store-Apps, die XAML in Windows 8.1 verwenden, sowie Windows Store-Apps, die JavaScript und das neue WebView-Steuerelement verwenden. Windows 8-Apps sind nicht betroffen, und es wird der vorhandene Modus mit Fenstern verwendet.

Veraltete WinJS-APIs

Die folgenden "WinJS.UI"-Elemente sind veraltet.

API-ElementErsetzen durch
SettingsFlyout.width-Eigenschaft {win-wide}Ersetzt durch das neue Fenstergrößenmodell.
ListLayout.backdropColor-Eigenschaft.win-backdrop {background-color:<value>;}
ListLayout.disableBackdrop-Eigenschaft.win-backdrop {background-color:transparent;}
GridLayout.backdropColor-Eigenschaft.win-backdrop {background-color: <color>;}
GridLayout.disableBackdrop-Eigenschaft.win-backdrop {background-color:transparent;}
GridLayout.maxRows-Eigenschaft

Sie können die Höhe folgendermaßen steuern, um für Ihr Layout die maximale Zeilenanzahl in CSS zu erhalten:.win-surface {height: 200px;}

GridLayout.groupInfo-EigenschaftCellspanningLayout.groupInfo-Eigenschaft
GridLayout.itemInfo-EigenschaftCellspanningLayout.itemInfo-Eigenschaft
ListView.loadingBehavior-EigenschaftVerwenden Sie ein Designmuster.
ListView.automaticallyLoadPages-EigenschaftVerwenden Sie ein Designmuster.
ListView.loadMorePages-MethodeVerwenden Sie ein Designmuster.
ListView.pagesToLoad-EigenschaftVerwenden Sie ein Designmuster.
ListView.pagesToLoadThreshold-EigenschaftVerwenden Sie ein Designmuster.

 

WebView.ScriptNotify-Ereignis

In Windows 8 lösen die WebView.AllowedScriptNotifyUris-Eigenschaft und die WebView.AnyScriptNotifyUri-Eigenschaft das ScriptNotify-Ereignis aus.WebView.AllowedScriptNotifyUrisWebView.AnyScriptNotifyUri Da diese Eigenschaften in Windows 8.1 veraltet sind, kann das ScriptNotify-Ereignis beim App-Onboarding nicht geprüft werden, sodass eine App ihre eigentliche Arbeit im Web und nicht in ihrem App-Paket durchführen kann. Prüfen Sie stattdessen die ApplicationContentUriRules des Pakets im Manifest. Bei der Aufnahme der App kann diese das Manifest prüfen, das zur Laufzeit nicht geändert werden kann.

Fenstergrößenmodell

Für Windows 8.1 wurde ein neues Fenstergrößenmodell übernommen, das umfassendere Multitaskingszenarios unterstützt. Das Konzept unterschiedlicher Ansichtszustände wurde abgeschafft, und der angedockte Zustand ist nicht mehr erforderlich. Stattdessen kann die Größe der Apps fortlaufend bis hin zu ihrer Mindestgröße eingestellt werden. Eine App kann über eine Mindestbreite von 500 oder 320 Pixeln verfügen. In der Standardeinstellung beträgt die Mindestbreite einer App 500 Pixel.

Die  ApplicationView.Value-Eigenschaft in Windows 8 sowie die ApplicationView.TryUnsnap-Methode sind veraltet, sodass Warnungen angezeigt werden, wenn die App diese verwendet. Eine App sollte sich für das Fenstergrößenänderungs-Ereignis registrieren, damit das Layout zum richtigen Zeitpunkt aktualisiert wird. Anstatt jedoch mit dem Aufrufen von ApplicationView.Value zu ermitteln, in welchem Ansichtszustand sich die App befindet, sollte der App-Entwickler die Layoutentscheidungen mithilfe von direkten Medienabfragen der Fenstergröße treffen. In Windows 8.1 kann der App-Entwickler entscheiden, welchen Fenstergrößen-Schwellenwerten und Medienabfragen die App beim Aktualisieren des App-Layouts unterliegt.

Im Folgenden finden Sie einige Methoden für die Codemigration.

Anzeigen der allgemeinen Fenstergröße:

WWA (JavaScript)

Windows 8

function onSizeChanged() {
    // Get view state
    var currentViewState = ApplicationView.value;

    if (currentViewState === ApplicationViewState.fullScreenLandscape) {
        // Full screen Landscape layout

    } else if (currentViewState === ApplicationViewState.fullScreenPortrait) {
        // Full screen Portrait layout

    } else if (currentViewState === ApplicationViewState.filled) {
         // Filled layout

    } else if (currentViewState === ApplicationViewState.snapped) {
        // Snapped layout
    } 
}


Windows 8.1

function onSizeChanged() {
    // Get window size
    var windowWidth = document.documentElement.offsetWidth;

    // App code to change layout based on window width* 

}


WWA (Medienabfragen)

Windows 8

@media (-ms-view-state: fullscreen-landscape) {
    /* CSS styles for full screen landscape */
}

@media (-ms-view-state: fullscreen-portrait) {
    /* CSS styles for full screen portrait */
}

@media (-ms-view-state: filled) {
    /* CSS styles for filled*/
}

@media (-ms-view-state: snapped) {
    /* CSS styles for snapped */
}


Windows 8.1

@media (min-width: 500px) and (max-width: 1023px) {
    /* CSS styles to change layout based on window width */
}

@media (min-width: 1024px) {
    /* CSS styles to change layout based on window width */
}


Anzeigeausrichtung:

WWA (JavaScript)

Windows 8

function onSizeChanged() {
    // Get view state
    var currentViewState = ApplicationView.value;

    if (currentViewState == ApplicationViewState.fullScreenLandscape || currentViewState == ApplicationViewState.filled) {
        // Landscape layouts

    } else if (currentViewState == ApplicationViewState.fullScreenPortrait) {
        // Portrait layouts

    }
}


Windows 8.1

function onSizeChanged() {
    // Get the window orientation
    var winOrientation = ApplicationView.getForCurrentView().orientation;

    if (winOrientation === ApplicationViewOrientation.landscape) {
       // Landscape layouts

    } else if (winOrientation === ApplicationViewOrientation.portrait) {
       // Portrait layouts

    }
}


WWA (Medienabfragen)

Windows 8

@media (-ms-view-state: fullscreen-landscape) or (-ms-view-state: filled)  {
    /* CSS styles for landscape layouts */
}

@media (-ms-view-state: fullscreen-portrait) {
    /* CSS styles for portrait layouts */
}


Windows 8.1

@media (orientation: landscape) {
    /* CSS styles for landscape layouts */
}

@media (orientation: portrait) {
    /* CSS styles for portrait layouts */
}


Verbesserungen am Dokumentobjektmodell (DOM)

Die Windows 8.1-Plattform für JavaScript-Entwickler umfasst viele Verbesserungen, um die Leistung und die Kompatibilität gängiger Frameworks mit Webinhalten zu optimieren. Dank dieser Änderungen erzielen die Entwickler mit ihrem vorhandenen Code bessere Leistungen. Sie müssen weniger Änderungen vornehmen, um ihren modernen Webcode für die Ausführung in Windows 8.1-Anwendungen anzupassen.

Diese Änderungen umfassen zudem das Ersetzen einiger veralteter APIs aus der Windows 8.1-Plattform für JavaScript-Entwickler durch die auf Standards beruhenden, modernen Entsprechungen. Gemeinsam sorgen diese Änderungen dafür, dass die JavaScript-Frameworks die Windows 8.1-Plattform für JavaScript-Entwickler nicht fälschlicherweise als frühere Version von Internet Explorer identifizieren.

Veraltete DOM-APIs

Die folgenden JavaScript-API-Elemente sind veraltet. Verwenden Sie für funktionelle Änderungen eine webplattformbasierte Entsprechung. Verwenden Sie für Änderungen an der veralteten Datenbindung die Datenbindung der JavaScript-Frameworks, z. B. die Windows-Bibliothek für JavaScript (WinJS).

API-ElementErsetzen durch
attachEventaddEventListener
createEventObject createEvent und initEvent
document.createStyleSheet document.createElement(“style”)
document.fileSizeAbrufen und Untersuchen der Datei mittels XMLHttpRequest
document.selectionwindow.getSelection()
detachEventremoveEventListener
element.doScroll scrollLeft und scrollTop
fireEvent dispatchEvent
HTMLElement.all querySelector und querySelectorAll
HTMLImageElement.fileSize Abrufen und Untersuchen der Datei mittels XMLHttpRequest
screen.updateInterval Keine
style.styleSheetstyle.sheet
window.execScript window.eval
XDomainRequestXMLHttpRequest

 

Diese navigator-Objektmember sind nicht veraltet, verfügen jedoch über geänderte Rückgabewerte:

  • userAgent
  • appVersion
  • appName
  • product

Änderungen an Zeigereingabeereignissen

Bei einem Zeiger handelt es sich um eine generische Eingabeart mit einem vereinheitlichten Ereignismechanismus. Er stellt grundlegende Informationen (wie die Bildschirmposition) für die aktive Eingabequelle (Touch, Touchpad, Maus oder Stift) zur Verfügung. Die Anbieterpräfixe für die Implementierung der Zeigerereignisse wurden für Windows 8.1 entfernt.

Entfernung des Anbieterpräfixes "MS"

Veraltete APIErsatz-API
MSPointerDown-Ereignis pointerdown-Ereignis
MSPointerUp-Ereignis pointerup-Ereignis
MSPointerCancel-Ereignis pointercancel-Ereignis
MSPointerMove-Ereignis pointermove-Ereignis
MSPointerOver-Ereignis pointerover-Ereignis
MSPointerOut-Ereignis pointerout-Ereignis
MSPointerEnter-Ereignis pointerenter-Ereignis
MSPointerLeave-Ereignis pointerleave-Ereignis
MSGotPointerCapture-Ereignis gotpointercapture-Ereignis
MSLostPointerCapture-Ereignis lostpointercapture-Ereignis
-ms-touch-action-CSS-Eigenschaft touch-action-CSS-Eigenschaft
element.style.msTouchAction-Eigenschaft element.style.touchAction-Eigenschaft
onmspointer*-Attributeonpointer*-Attribute
element.msSetPointerCapture()-Methode element.setPointerCapture()-Methode
element.msReleasePointerCapture()-Methode element.releasePointerCapture()-Methode

 

Updates für Verhalten

Die folgenden Verhaltensänderungen wurden für Windows 8.1 implementiert, um die Änderungen der technischen Details zu erfüllen, die durch die World Wide Web Consortium (W3C)-Spezifikation für Zeigerereignisse vorgegeben werden.

Bereich für Zeigerereignisse Windows 8Windows 8.1
pointerenter
pointerleave
Nicht unterstütztUnterstützt
PointerEvent.pressure Gibt für Hardware ohne Druckunterstützung immer "0" zurück.Gibt für aktiven Kontakt (beispielsweise eine gedrückte Maustaste) den Wert 0,5 zurück. Für Hardware ohne Druckunterstützung wird andernfalls 0 zurückgegeben.
PointerEvent.height
PointerEvent.width
Gibt Werte in Bildschirmpixeln zurück.Gibt Werte in CSS-Dokumentpixeln zurück.

Mausereignisse

click
contextmenu
dblclick
Verteilt MouseEvent.Verteilt PointerEvent (erbt von MouseEvent).
PointerEvent.pointerType Gibt einen ganzzahligen Wert zurück.Gibt einen Zeichenfolgenwert zurück.
releasePointerCapture Gibt bei Aufruf für ein Element die Erfassung des angegebenen Zeigers für jedes Element frei, das gerade erfasst ist.Gibt den Zeiger nur frei, wenn das aufrufende Element bereits über eine Erfassung (mittels SetPointerCapture) verfügt.
MSPointerHover Unterstützt (wird ausgelöst, wenn ein Eingabestift über ein Element bewegt wird, ohne die Oberfläche zu berühren).Nicht unterstützt (wird nicht ausgelöst). Verwenden Sie pointermove, und prüfen Sie die erweiterten PointerPointProperties-Eigenschaften, um festzustellen, ob mit dem Mauszeiger auf ein Objekt gezeigt wird. Andere Daraufzeigen-Verhalten, wie CSS :hover, werden weiterhin angewendet.
pointermove Für Eingabestift; wird nur bei Berührung der Oberfläche (also nicht beim Daraufzeigen) ausgelöst.Wird für alle Stiftbewegungen ausgelöst (unabhängig davon, ob es sich um Daraufzeigen handelt).

 

Schriftarten für vorhandene Skripts

Wir aktualisieren die Standard- und Benutzeroberflächenschriftarten im DOM für Windows Store-Apps mit JavaScript für mehrere Sprachen. Weitere Informationen finden Sie im Kompatibilitäts-Cookbook für Windows.

Deaktivieren der Pseudotreffertests im IE 11-Modus

Wir deaktivieren veraltete Internet Explorer-Funktionen, mit denen Klicks oder andere Touch- oder Mausinteraktionen bedingt transparente Hintergründe durchlaufen konnten, die so genannten "Pseudotreffertests". Diese Funktion wurde häufig als inkonsistent betrachtet, da abhängig vom Inhalt hinter der transparenten Ebene abwich und nicht für direkte Manipulationen wie das Schwenken und Vergrößern verwendet wurde. Mithilfe dieser Änderung kann die Standardkompatibilität des letzten Internet Explorer-Modus für öffentliche Websites ausgelöst werden, während gleichzeitig die browserübergreifende Interoperabilität verbessert wird. In Windows 8 verhinderte diese Funktion auf einigen Seiten, dass Elemente beim Klicken aktiviert wurden, da das Ereignis eine transparente Ebene "durchlief" und beim falschen Element ausgelöst wurde.

Die betroffenen Inhalte scheinen auf die Benutzerinteraktion nicht zu reagieren und können als von einer anderen Ebene überdeckt betrachtet werden, wenn das Feature Element durch Klicken auswählen der F12-Tools oder von Microsoft Visual Studio verwendet wird. Aufgrund dieser Änderung funktioniert die Schaltfläche "Zurück" für Apps in Windows 8.1 nicht mehr. Dieses Problem kann i. d. R. behoben werden, indem der z-Index oder die Grenzen der transparenten Ebene geändert werden. Gehen Sie folgendermaßen vor, um die Schaltfläche "Zurück" wiederherzustellen:

  • Platzieren Sie die Schaltfläche "Zurück" in der CSS-Datei vor den anderen Steuerelementen.

    
    .fragment header[role=banner] .win-backbutton {
        margin-left: 39px;
        margin-top: 59px;
        prosition: relative;
        z-index: 1;
    }
    
    
  • Verwenden Sie das neue Schaltflächensteuerelement "Zurück" für Windows 8.1.

    1. Ersetzen Sie <button class="win-backbutton" aria-label="Back" disabled type="button"></button> durch <button data-win-control="WinJS.UI.BackButton"></button>.
    2. Ersetzen Sie in der Datei "default.css" .win-backbutton durch .win-navigation-backbutton.
    3. Platzieren Sie die Schaltfläche "Zurück" vor den anderen Steuerelementen.
      
      .fragment header[role=banner] .win-navigation-backbutton {
          margin-left: 39px;
          margin-top: 59px;
          position: relative;
          z-index: 1;
      }
      
      

WinJS war beim Zeichnen des Tastaturfokusrechtecks für ein Element des ListView-Steuerelements von dieser Funktion abhängig. Wenn Sie in Ihre App eine ältere Kopie von WinJS eingebettet haben, sollten Sie beim Migrieren der App von Windows 8 zu Windows 8.1 ein Upgrade auf die aktuelle Version durchführen.

Asynchrones Laden dynamisch hinzugefügter Skripts in Windows Store-Apps mit JavaScript

Dynamisch hinzugefügte Skriptelemente werden nun für Protokolle für Windows Store-Apps mit JavaScript (ms-appx*) asynchron geladen, um diese an den Funktionen der Webprotokolle (http*) auszurichten. Bislang konnten solche Skripts synchron geladen werden und abhängig von deren Attributreihenfolge die Benutzeroberfläche sperren.

Die für Windows 8.1 geschriebenen Windows Store-Apps laden Skripts dynamisch und versuchen, diese Funktionen des Skripts unmittelbar zu verwenden. Gehen Sie wie folgt vor, um betroffene Inhalte zu aktualisieren:

  • Laden Sie Skripts statisch im HTML-Markup der Seite.
  • Setzen Sie "script.async=false" auf dynamische geladene Skripts, um sicherzustellen, dass diese in der Reihenfolge des Hinzufügens ausgeführt werden.
  • Warten Sie, bis das load-Ereignis eines Skriptelements ausgelöst wird, bevor Sie die im Skript definierten Funktionen verwenden.

Das WinJS-Fragmentladeprogramm wurde aktualisiert und ist nun mit dieser Änderung kompatibel. Wenn Sie Ihre Apps zu Windows 8.1 migrieren, müssen Sie sicherstellen, dass Sie über die neueste WinJS-Version verfügen, um Probleme zu vermeiden.

Verwandte Themen

Neue APIs und Features für Entwickler
Neuzuweisen Ihrer Windows Store-Apps zu Windows 8.1
Aktualisierte Beispiele
DirectX-Programmierung
API-Änderungen in Windows 8.1 (Windows Store-Apps mit C#/VB/C++ und XAML)

 

 

Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.