What are Safari experimental features?

Dyk Ned i Safaris Særlige Funktioner og Udfordringer

15/08/2024

Rating: 3.92 (7189 votes)

Safari, som er Apples standardbrowser på iPhone, iPad og Mac, er kendt for sin brugervenlighed og integration med Apples økosystem. Men under overfladen gemmer browseren på en række avancerede funktioner og unikke adfærdsmønstre, der kan være både fascinerende og frustrerende for udviklere og avancerede brugere. Denne artikel vil udforske tre centrale aspekter af Safari: de eksperimentelle funktioner, den ofte diskuterede adfærd med target="_blank" på iOS, og de mystiske udfordringer med navngivne ankerlinks.

Does a named anchor tag work in iPhone Safari browser?
I'm having an issue with a named anchor tag in iPhone Safari browser. It works well in desktop browsers including Safari, but not working in mobile Safari. Weird! the above URL is from a newsletter and it should go to the bottom paragraph in article page which I gave id like this:

For webudviklere er det afgørende at forstå Safaris nuancer for at sikre, at websteder og webapplikationer fungerer fejlfrit på tværs af alle enheder. Selv for den almindelige bruger kan en grundlæggende forståelse af disse punkter bidrage til en bedre browseroplevelse og løse potentielle problemer. Lad os dykke ned i detaljerne.

Indholdsfortegnelse

Opdagelse af Safaris Eksperimentelle Funktioner

Safari indeholder et sæt skjulte 'eksperimentelle funktioner', også kendt som WebKit-funktionsflag, der primært er designet til webudviklere. Disse funktioner giver adgang til nye webstandarder og potentielle fremtidige browserfunktioner, før de officielt er implementeret og bredt tilgængelige. De er et uvurderligt værktøj for udviklere, der ønsker at teste deres websteder mod den seneste teknologi eller diagnosticere specifikke rendering-problemer.

Formålet med disse eksperimentelle funktioner er at give udviklere mulighed for at eksperimentere med og give feedback på kommende webteknologier. Dette hjælper Apple med at forfine implementeringen, inden funktionerne rulles ud til den brede offentlighed. For eksempel kan udviklere bruge dem til at teste, hvordan en ny CSS-egenskab opfører sig, eller hvordan en bestemt JavaScript API vil påvirke ydeevnen på tværs af forskellige enheder.

Sådan Aktiverer du Eksperimentelle Funktioner

Aktivering af disse funktioner er en simpel proces, men det er vigtigt at huske, at de er beregnet til teknisk brug og ikke anbefales til almindelige brugere, da de kan føre til uforudsigelig browseradfærd eller sikkerhedsrisici. Fejlfinding af websteder eller test af nye funktioner er de primære anvendelsesmuligheder.

How do I Reset my Safari feature markers?
You can do this via Settings ▸ Safari ▸ Advanced ▸ Feature Markers ▸ tap ‘Restore All Defaults’ at the bottom of the list. On a Mac you can do this via Safari ▸ Menu Bar ▸ Safari ▸ Settings ▸ Feature Markers ▸ click ‘Reset Feature Marking’. As a developer, you can enable experimental options in Safari for iPhone, iPad, and Mac.

På iPhone og iPad:

  1. Åbn appen Indstillinger på din enhed.
  2. Rul ned og tryk på Safari.
  3. Rul igen ned og tryk på Avanceret.
  4. Her finder du Funktionsmarkører (på engelsk 'Feature Flags'). Tryk på den.
  5. Du får nu en lang liste over eksperimentelle funktioner. Du kan aktivere eller deaktivere de ønskede indstillinger ved at trykke på skiftekontakten ved siden af hver funktion. Eksempler inkluderer 'Constant Properties', 'CSS Spring Animations', 'Link Preload', 'Viewport Fit', 'Web Animations' og 'Web GPU'. Disse indstillinger giver dig også mulighed for at konsultere webinfo-vinduet og aktivere eller deaktivere JavaScript direkte i webbrowseren.

På Mac:

  1. Åbn Safari-browseren.
  2. Klik på Safari i menulinjen øverst på skærmen.
  3. Vælg Indstillinger (eller 'Præferencer' afhængigt af macOS-versionen).
  4. Gå til fanen Avanceret.
  5. Sæt flueben i feltet 'Vis funktioner for webudviklere' (eller 'Show Develop menu in menu bar').
  6. En ny fane kaldet Udvikler (eller 'Develop') vil nu vises i menulinjen. Klik på denne.
  7. Herfra kan du finde 'Eksperimentelle funktioner' (eller 'Experimental Features'), hvor du kan aktivere eller deaktivere de forskellige flag.

Gendannelse af WebKit-funktionsflag

Hvis du har justeret nogle af disse eksperimentelle indstillinger, og du er færdig med dit arbejde, eller oplever problemer, er det stærkt anbefalet at gendanne dem til standardindstillingerne. Dette sikrer, at din browser fungerer som forventet og minimerer risikoen for uønskede bivirkninger.

På iPhone og iPad:

  1. Gå til Indstillinger > Safari > Avanceret > Funktionsmarkører.
  2. Rul helt ned i bunden af listen og tryk på Gendan alle standarder.

På Mac:

  1. Åbn Safari > Indstillinger > Avanceret.
  2. Klik på Funktionsmarkører (eller 'Experimental Features' under 'Develop' menuen).
  3. Klik på knappen Nulstil funktionsmarkering (eller 'Reset All to Defaults').

Disse trin vil nulstille alle eksperimentelle funktioner til deres oprindelige tilstand, hvilket sikrer en stabil browseroplevelse.

target="_blank" på iOS Safari – Virker det?

Et almindeligt problem, som mange webudviklere støder på, er den uforudsigelige adfærd af target="_blank" attributten på iOS Safari, især i forbindelse med Accelerated Mobile Pages (AMP). Normalt bruges target="_blank" i et <a> (anker) tag til at åbne et link i et nyt browservindue eller en ny fane, hvilket er standardadfærd på de fleste browsere, herunder Android-browsere.

Problemet opstår, når et link som <a href="External_Url" rel="external" target="_blank">Klik</a>, som fungerer perfekt på Android, ikke åbner i et nyt vindue på iOS Safari. I stedet kan det enten åbne i samme fane eller slet ikke fungere efter hensigten. Dette er særligt frustrerende for AMP-udviklere, da AMP-konventioner strengt begrænser brugen af brugerdefineret JavaScript, som ellers kunne bruges til at omgå dette problem.

What are Safari experimental features?

Selvom en bruger kan have indstillet 'Åbn i ny fane' i Safari-indstillingerne på sin iPhone, løser dette ofte ikke kerneproblemet for AMP-sider. AMP-rammeværket er designet til at være ekstremt performant ved at begrænse, hvad der er tilladt på siden, og dette inkluderer ofte restriktioner på, hvordan links håndteres, især hvis de forsøger at bryde ud af AMP-konteksten. Den manglende evne til at bruge tilpasset JavaScript betyder, at standard HTML-adfærd skal være tilstrækkelig, hvilket i dette tilfælde ikke er det.

Desværre, baseret på den tilgængelige information, er der ingen simpel, ikke-JavaScript løsning til at tvinge target="_blank" til at fungere konsekvent i et nyt vindue på iOS Safari inden for en AMP-kontekst. Dette er en kendt udfordring og et begrænsning ved AMP's designfilosofi, hvor ydeevne og sikkerhed prioriteres over fuld fleksibilitet. Udviklere må ofte finde alternative måder at præsentere eksternt indhold på, eller acceptere den begrænsede funktionalitet på iOS Safari for AMP-sider.

Ankernavne i Safari på iPhone – Et Mysterium?

En anden forvirrende adfærd, som udviklere kan opleve med Safari på iPhone, er problemer med navngivne ankerlinks. Et navngivet ankerlink, som http://www.example.com/my-example-article-url-is-like.php#articlebottom, er designet til at navigere direkte til et specifikt element på en webside, der har det matchende ID, f.eks. <p id="articlebottom">paragraph is here</p>.

Mens disse links ofte fungerer fejlfrit på desktop-browsere, inklusive Safari på Mac, kan de svigte på mobil Safari. Problemet manifesterer sig typisk ved, at linket fører brugeren til toppen af den målrettede side i stedet for den specifikke sektion angivet af ankeret. Endnu mere forvirrende er observationen, at #articlebottom-delen af URL'en kan forsvinde, når siden er indlæst i mobil Safari, hvilket indikerer, at browseren ikke har registreret eller behandlet ankeret korrekt.

How to speed up safari browsing experience in iOS 12/11?
I found some explanation here --> Explain iOS 12/11 Safari Experimental Features and How to ... Settings > Safari > Advanced > Experimental Features. Here you can enable a bunch of features such as Link Preload, which could speed up the browsing experience.

Dette kan være utroligt frustrerende, især når ankerlinks bruges i nyhedsbreve eller interne navigationselementer for at forbedre brugeroplevelsen ved at sende dem direkte til relevant indhold. Årsagerne til denne inkonsekvente adfærd kan være mange og komplekse. De kan omfatte:

  • Timing-problemer: Siden indlæses, før ankeret behandles korrekt, især på sider med meget indhold eller komplekse JavaScript-strukturer, der ændrer DOM (Document Object Model) efter den indledende indlæsning.
  • Safari's rendering-motor: Mobil Safari har sine egne unikke måder at rendere sider på, som kan afvige fra desktop-versioner eller andre mobile browsere.
  • CSS-relaterede problemer: Nogle gange kan CSS-egenskaber som scroll-behavior eller position: fixed forstyrre ankerlinkets funktion.
  • Interaktion med JavaScript: Selvom der ikke er explicit JavaScript, der manipulerer ankerlinks, kan andre scripts på siden indirekte påvirke den måde, browseren behandler URL'ens hash-del på.

Desværre findes der ingen universel 'fix' til dette problem, da det kan afhænge af den specifikke side og dens opbygning. Udviklere, der står over for dette, må ofte ty til dybdegående fejlfinding, såsom at teste med forenklede versioner af siden, deaktivere JavaScript midlertidigt (hvis muligt) eller undersøge sideindlæsningstider og renderingrækkefølgen.

Det er vigtigt at bemærke, at selvom dette er et kendt problem, giver den foreliggende information ikke en direkte løsning. Det understreger behovet for grundig test på tværs af forskellige enheder og browsere, især når man arbejder med mobiloptimering.

Ofte Stillede Spørgsmål (FAQ)

SpørgsmålSvar
Hvad er Safari eksperimentelle funktioner?Det er avancerede indstillinger for webudviklere, der giver adgang til nye og kommende webstandarder i Safari. De bruges til test og fejlfinding af websteder med den nyeste teknologi.
Er det sikkert for almindelige brugere at aktivere eksperimentelle funktioner?Nej, det anbefales ikke. De er primært til udviklere og kan forårsage uforudsigelig browseradfærd eller sikkerhedsrisici for almindelige brugere.
Hvorfor virker target="_blank" ikke altid på iOS Safari for AMP-sider?Dette er en kendt begrænsning, især for AMP-sider, der har strenge regler for brug af JavaScript. Uden mulighed for at bruge tilpasset JavaScript til at tvinge ny fane-adfærd, kan Safari på iOS have uforudsigelig adfærd.
Kan jeg tvinge target="_blank" til at åbne i en ny fane på iOS Safari uden JavaScript?Baseret på den tilgængelige information er der ingen simpel, ikke-JavaScript løsning, der garanterer denne adfærd, især inden for AMP-rammeværket.
Hvorfor virker navngivne ankerlinks (f.eks. #sektion) ikke på min iPhone Safari, men fungerer på desktop?Dette er et almindeligt problem, der kan skyldes timing-problemer under sideindlæsning, Safari's unikke rendering-motor eller interaktioner med sideindhold eller scripts. Der er ingen universel løsning, og det kræver ofte dybdegående fejlfinding.
Hvordan nulstiller jeg alle mine Safari-indstillinger, inklusive de eksperimentelle funktioner?På iPhone/iPad: Gå til Indstillinger > Safari > Avanceret > Funktionsmarkører > Gendan alle standarder. På Mac: Safari > Indstillinger > Avanceret > Funktionsmarkører > Nulstil funktionsmarkering.

At forstå Safari's unikke adfærd og de værktøjer, den tilbyder, er afgørende for enhver, der arbejder med webindhold. Mens de eksperimentelle funktioner giver et vindue ind i fremtidens web, minder udfordringerne med target="_blank" og ankerlinks os om vigtigheden af grundig test og tilpasning til specifikke browserplatforme. Ved at være opmærksom på disse nuancer kan du skabe en mere robust og brugervenlig oplevelse for alle Safari-brugere.

Hvis du vil læse andre artikler, der ligner Dyk Ned i Safaris Særlige Funktioner og Udfordringer, kan du besøge kategorien Mobilteknologi.

Go up