PageSourceSearch

https://iskole.net/elev/

html iskole.net collected 2026-09-30 15:22:39 UTC 24,377 bytes, 514 lines download raw bytes

1<!DOCTYPE html>
2<html lang="no-nb">
3
4<head>
5  <title>iSkole</title>
6  <meta charset="UTF-8">
7  <meta name="viewport"
8    content="viewport-fit=cover, width=device-width, initial-scale=1, maximum-scale=5, minimum-scale=1.0">
9  <meta name="theme-color" content="white" />
10
11  <!-- ── Boot-vakt ──────────────────────────────────────────────────────────
12       Appens oppstart henger på ressurser fra static.oracle.com: require.js,
13       bundles-config.js og Redwood-temaet. Faller CDN-en bort — filtrert
14       skolenett, proxy, DNS-trøbbel, treg linje — er `require` udefinert når
15       js/bundle.js kjører. Da anvendes Knockout-bindingene aldri, alle
16       oj-*-elementene rendrer ingenting, og brukeren sitter igjen med en blank
17       hvit side. Ingen feilmelding, ingen logg: verken hun eller vi får vite
18       noe. Det var akkurat den saken vi ikke klarte å diagnostisere.
19
20       Vakten er ren vanilla uten avhengigheter, og står FØR all annen
21       ressurslasting slik at error-lytteren (capture-fasen) også fanger
22       stilarkene og CDN-scriptene. Den avvæpnes av iskoleBootOk(), som
23       kalles rett etter ko.applyBindings i root.js — først da er appen
24       beviselig oppe.
25
26       Endres denne, endre den i alle tre PWA-ene (ansatt, elev, forelder).
27       ---------------------------------------------------------------------- -->
28  
28<script>
29    (function () {
30      "use strict";
31      try {
32        var start = Date.now();
33        var oppe = false;
34        var vist = false;
35        var feil = [];
36        var timer = null;
37
38        // Stille død: appen booter aldri, men ingenting sier fra. Romslig,
39        // fordi en treg mobillinje er normalt og ikke skal gi falsk alarm.
40        var FRIST_STILLE = 20000;
41        // En boot-kritisk ressurs har røket. Kort frist — men ikke null, for
42        // en enkelt feilende ressurs trenger ikke være dødelig.
43        var FRIST_FEIL = 6000;
44
45        // Bare feil i det appen faktisk booter på skal korte fristen: script
46        // fra static.oracle.com (require.js, bundles-config.js) og fra eget
47        // domene (bundle.js, main.js), og JS-feil derfra («require is not
48        // defined»). Alt annet — bilder, stilark, fontawesome-kit blokkert av
49        // en adblocker, gstatic — noteres i diagnostikken, men får ikke legge
50        // «iSkole starter ikke» over en app som er på vei opp. (Sett 09.09:
51        // forelder brukte 26 s på dev, og ett 404 var nok til å vise overlegget
52        // over en side som virket. Fjerningen ved boot gjør det til et blaff,
53        // men blaffet har en «Prøv på nytt»-knapp som starter alt på nytt.)
54        // Tom filename = cross-origin «Script error.» uten CORS → ukjent, ikke
55        // kritisk.
56        function erBootKritisk(url) {
57          if (!url) return false;
58          try {
59            var u = new URL(String(url), location.href);
60            return u.origin === location.origin || u.hostname === "static.oracle.com";
61          } catch (e) { return false; }
62        }
63
64        function noter(type, detalj, kritisk) {
65          if (feil.length < 12) feil.push({ type: type, detalj: String(detalj || "") });
66          if (!kritisk) return;
67          // Boot-kritisk feil er sterkt signal; kort ned fristen.
68          if (!oppe && timer !== null) {
69            var igjen = start + FRIST_FEIL - Date.now();
70            clearTimeout(timer);
71            timer = setTimeout(sjekk, igjen > 0 ? igjen : 0);
72          }
73        }
74
75        // Ressursfeil (script/link/img) bobler ikke — de må fanges i capture.
76        window.addEventListener("error", function (e) {
77          if (e && e.target && e.target !== window && (e.target.src || e.target.href)) {
78            var url = e.target.src || e.target.href;
79            var tag = String(e.target.tagName || "").toUpperCase();
80            noter("ressurs", url, tag === "SCRIPT" && erBootKritisk(url));
81          } else if (e && e.message) {
82            noter("js", e.message + " @ " + (e.filename || "?") + ":" + (e.lineno || 0),
83                  erBootKritisk(e.filename));
84          }
85        }, true);
86
87        window.addEventListener("unhandledrejection", function (e) {
88          noter("promise", (e && e.reason && (e.reason.message || e.reason)) || "ukjent", false);
89        });
90
91        function detaljer() {
92          var sw = "nei";
93          try {
94            if (navigator.serviceWorker && navigator.serviceWorker.controller) {
95              sw = navigator.serviceWorker.controller.scriptURL;
96            }
97          } catch (e) { sw = "utilgjengelig"; }
98          var linjer = [
99            "iSkole boot-vakt",
100            "tid:       " + new Date().toISOString(),
101            "side:      " + location.pathname,
102            "ventet:    " + Math.round((Date.now() - start) / 1000) + " s",
103            "require:   " + (typeof window.require === "undefined" ? "IKKE LASTET" : "lastet"),
104            "define:    " + (typeof window.define === "undefined" ? "IKKE LASTET" : "lastet"),
105            "online:    " + (navigator.onLine ? "ja" : "nei"),
106            "sw:        " + sw,
107            "nettleser: " + navigator.userAgent
108          ];
109          if (feil.length) {
110            linjer.push("");
111            linjer.push("feil:");
112            for (var i = 0; i < feil.length; i++) {
113              linjer.push("  [" + feil[i].type + "] " + feil[i].detalj);
114            }
115          }
116          return linjer.join("\n");
117        }
118
119        var overlegg = null;
120
121        function vis() {
122          if (vist) return;
123          vist = true;
124
125          var tekst = detaljer();
126          try { console.error(tekst); } catch (e) { /* no-op */ }
127
128          // Alt bygges med DOM-API og inline stil: temaet er nettopp det som
129          // kan mangle, så vi kan ikke låne en eneste CSS-klasse av appen.
130          var d = document;
131          var bak = d.createElement("div");
132          bak.setAttribute("role", "alertdialog");
133          bak.setAttribute("aria-label", "iSkole starter ikke");
134          bak.style.cssText = "position:fixed;inset:0;z-index:2147483647;" +
135            "background:#f6f9fa;color:#182e38;overflow:auto;" +
136            "font:16px/1.5 system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;" +
137            "display:flex;align-items:center;justify-content:center;padding:24px";
138
139          var kort = d.createElement("div");
140          kort.style.cssText = "max-width:560px;width:100%;background:#fff;" +
141            "border:1px solid #dbe6ec;border-radius:12px;padding:28px;" +
142            "box-shadow:0 8px 24px rgba(24,46,56,.07)";
143
144          var h = d.createElement("h1");
145          h.textContent = "iSkole starter ikke";
146          h.style.cssText = "margin:0 0 12px;font-size:22px;font-weight:600";
147
148          var p1 = d.createElement("p");
149          p1.textContent = "Vi fikk ikke lastet ned alt appen trenger. Det " +
150            "skyldes som regel nettverket — et skolenett eller en " +
151            "brannmur som blokkerer, eller en ustabil forbindelse.";
152          p1.style.cssText = "margin:0 0 12px";
153
154          var p2 = d.createElement("p");
155          p2.textContent = "Prøv på nytt. Hjelper det ikke, " +
156            "prøv et annet nett — for eksempel mobildata i stedet " +
157            "for trådløst.";
158          p2.style.cssText = "margin:0 0 20px";
159
160          var rad = d.createElement("div");
161          rad.style.cssText = "display:flex;flex-wrap:wrap;gap:10px;align-items:center";
162
163          var knapp = d.createElement("button");
164          knapp.type = "button";
165          knapp.textContent = "Prøv på nytt";
166          knapp.style.cssText = "background:#227e9e;color:#fff;border:0;" +
167            "border-radius:8px;padding:11px 20px;font:inherit;font-weight:600;" +
168            "cursor:pointer";
169          knapp.onclick = function () { location.reload(); };
170
171          var kopi = d.createElement("button");
172          kopi.type = "button";
173          kopi.textContent = "Kopier detaljer";
174          kopi.style.cssText = "background:#fff;color:#227e9e;" +
175            "border:1px solid #227e9e;border-radius:8px;padding:10px 18px;" +
176            "font:inherit;cursor:pointer";
177          kopi.onclick = function () {
178            var ok = function () { kopi.textContent = "Kopiert"; };
179            try {
180              if (navigator.clipboard && navigator.clipboard.writeText) {
181                navigator.clipboard.writeText(tekst).then(ok, velg);
182              } else { velg(); }
183            } catch (e) { velg(); }
184          };
185
186          var detalj = d.createElement("details");
187          detalj.style.cssText = "margin-top:20px";
188          var sum = d.createElement("summary");
189          sum.textContent = "Teknisk informasjon";
190          sum.style.cssText = "cursor:pointer;color:#4d6572;font-size:14px";
191          var pre = d.createElement("pre");
192          pre.textContent = tekst;
193          pre.style.cssText = "margin:12px 0 0;padding:12px;background:#f6f9fa;" +
194            "border:1px solid #dbe6ec;border-radius:8px;font:12px/1.45 " +
195            "ui-monospace,'SF Mono',Menlo,Consolas,monospace;white-space:pre-wrap;" +
196            "word-break:break-word;max-height:40vh;overflow:auto";
197
198          function velg() {
199            try {
200              detalj.open = true;
201              var r = d.createRange();
202              r.selectNodeContents(pre);
203              var s = window.getSelection();
204              s.removeAllRanges();
205              s.addRange(r);
206              kopi.textContent = "Merket — kopier med Ctrl/Cmd+C";
207            } catch (e) { /* no-op */ }
208          }
209
210          var hjelp = d.createElement("p");
211          hjelp.textContent = "Meld gjerne fra til skolen din, og ta med " +
212            "informasjonen over — den forteller oss hva som feilet.";
213          hjelp.style.cssText = "margin:20px 0 0;font-size:14px;color:#4d6572";
214
215          rad.appendChild(knapp);
216          rad.appendChild(kopi);
217          detalj.appendChild(sum);
218          detalj.appendChild(pre);
219          kort.appendChild(h);
220          kort.appendChild(p1);
221          kort.appendChild(p2);
222          kort.appendChild(rad);
223          kort.appendChild(detalj);
224          kort.appendChild(hjelp);
225          bak.appendChild(kort);
226          (d.body || d.documentElement).appendChild(bak);
227          overlegg = bak;
228        }
229
230        function sjekk() {
231          timer = null;
232          if (oppe) return;
233          vis();
234        }
235
236        // Kalles fra root.js rett etter ko.applyBindings.
237        //
238        // Fjerner overlegget hvis det ALLEREDE er vist: en treg, men vellykket
239        // oppstart skal ikke etterlate en feilmelding over en app som virker.
240        // (Sett i drift 2026-09-09: forelder-appen brukte 26 s paa dev, rendret
241        // ferdig bak overlegget, og brukeren satt igjen med «iSkole starter
242        // ikke» over en fullt fungerende side.) Fristen er dermed ikke lenger
243        // kritisk — den bommer i verste fall i noen sekunder.
244        window.iskoleBootOk = function () {
245          oppe = true;
246          if (timer !== null) { clearTimeout(timer); timer = null; }
247          if (overlegg && overlegg.parentNode) {
248            overlegg.parentNode.removeChild(overlegg);
249          }
250          overlegg = null;
251          vist = false;
252        };
253
254        timer = setTimeout(sjekk, FRIST_STILLE);
255      } catch (e) {
256        // Vakten skal aldri være grunnen til at siden ikke virker.
257      }
258    })();
259  </script>
259
260
261  <meta name="Description" content="Elevapplikasjon for iSkole - skoleadministrativt system.">
262  <link rel="icon" href="css/images/iskole.ico" type="image/x-icon" />
263  <link rel="manifest" href="manifest.json">
264  <link rel="apple-touch-icon" href="css/images/iskole-152.png">
265  <!-- This is the main css file for the default Alta theme -->
266<!-- injector:theme -->
267<link rel="stylesheet" href="https://static.oracle.com/cdn/jet/20.1.0/default/css/redwood/oj-redwood-min.css" id="basestyles" />
268<link rel="stylesheet" href="https://static.oracle.com/cdn/jet/20.1.0/3rdparty/oraclejet-preact/amd/Theme-redwood/theme.css" id="themestyle" />
269<!-- endinjector -->
270
271
272  <!-- This contains icon fonts used by the starter template -->
273  <!-- <link rel="stylesheet" href="css/demo-alta-site-min.css" type="text/css" /> -->
274
275  <!-- This is where you would add any app specific styling -->
276  <link rel="stylesheet" href="css/app.css?v=4" type="text/css" />
277  <link rel="stylesheet" href="css/login-main.css" type="text/css" />
278  <link rel="stylesheet" href="js/libs/@mobiscroll/javascript/dist/css/mobiscroll.min.css">
279  <link rel="stylesheet" href="js/libs/@mobiscroll/print/dist/css/mobiscroll.min.css">
280  
280<script src="https://kit.fontawesome.com/79234c5682.js" crossorigin="anonymous"></script>
280
281  
281<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
281
282  
282<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js"></script>
282
283  
283<script src="firebase-onMessage.js"></script>
283
284</head>
285
286<body class="oj-web-applayout-body">
287  <div id="globalBody" class="oj-offcanvas-outer-wrapper oj-offcanvas-page">
288    <div id="announce" tabindex="-1" class="sendOffScreen" :aria-live="[[manner]]" aria-atomic="true">
289      <p id="ariaLiveMessage">
290        <oj-bind-text value="[[message]]"></oj-bind-text>
291      </p>
292    </div>
293
294
295    <div id="pageContent" class="oj-web-applayout-page">
296      <!--
297         ** Oracle JET V10.0.0 web application header pattern.
298         ** Please see the demos under Cookbook/Patterns/App Shell: Web
299         ** and the CSS documentation under Support/API Docs/Non-Component Styling
300         ** on the JET website for more information on how to use this pattern.
301      -->
302    <oj-c-message-toast id="msg1" data="[[message_provider]]" position="top" on-oj-close="[[closeMessageHandler]]">
303    </oj-c-message-toast>
304      <div id="versionDisplay"
305      :class="[[localSwVersionUptodate() ? 'localSwVersionUptodate' : 'localSwVersionOutofdate']]">
306      <!-- <i id="refreshPageBtn" class="fas fa-refresh oj-icon-color-info fa-1x" style="cursor:pointer;"></i>Klikk her for å laste inn nye endringer -->
307      <span id="localSwVersion">
308        Lukk nettleseren for å aktivere ny versjon av iSkole.
309      <!-- 
310        <oj-bind-text value="[[localSwVersionUptodate() ? localSwVersion() : localSwVersion() + '(Utdatert)']]">
311        </oj-bind-text> -->
312      </span>
313      <!-- Tooltip -->
314      <span id="versionTooltip" class="versionTooltip">
315        <oj-bind-if test="[[!localSwVersionUptodate()]]">
316        <div class="versionTooltip-header">Aktiver ny versjon</div>
317        <div class="versionTooltip-body">Lukk nettleseren for å aktivere den nye versjonen.</div>
318      </oj-bind-if>
319      <oj-bind-if test="[[localSwVersionUptodate()]]">
320        <div class="versionTooltip-header">Versjon <oj-bind-text value="[[localSwVersion()]]"></oj-bind-text> </div>
321        <div class="versionTooltip-body">Du bruker den nyeste versjonen av iSkole.</div>
322      </oj-bind-if>
323      </span>
324    </div>
325      <header role="banner" class="oj-web-applayout-header" :style.display="[[isLoggedIn() ? null : 'none']]">
326        <div class="oj-flex-bar oj-sm-align-items-center">
327          <!-- Offcanvas toggle button -->
328          <div class="oj-flex-bar-start">
329            <oj-bind-if test="[[isLoggedIn()]]">
330              <oj-c-button id="drawerToggleButton" class="oj-c-button-lg" on-oj-action="[[startToggle]]"
331                chroming="borderless" display="icons" label="Meny">
332                <span slot="startIcon" class="oj-web-applayout-offcanvas-icon"></span>
333              </oj-c-button>
334            </oj-bind-if>
335          </div>
336          <div class="oj-flex-bar-middle oj-sm-align-items-baseline">
337            <img class="oj-sm-only-hide" :src="[[logoiskole()]]" alt="Logo" height="58px" />
338            <h1 class="oj-sm-only-hide oj-web-applayout-header-title oj-sm-padding-3x-start" title="Ap
338plication Name">
339              <oj-bind-text value="[[appName]]"></oj-bind-text>
340            </h1>
341          </div>
342          <div class="oj-flex-bar-middle oj-sm-align-items-center oj-sm-justify-content-space-between">
343            <div class="oj-line-clamp-1 oj-typography-subheading-lg">
344              <oj-bind-text value="[[moduleNameTxt]]"></oj-bind-text>
345            </div>
346          </div>
347          <div class="oj-flex-bar-end">
348            <!-- Responsive Toolbar -->
349            <oj-c-menu-button id="userMenu" display="[[smScreen() ? 'icons' : 'all']]" chroming="borderless" 
350            items="[[profile_menu]]" label="[[userLogin]]" on-oj-menu-action="[[menuItemAction]]" size="lg">
351              <span slot="startIcon"
352                class="fas fa-user-circle fa-1x"></span>
353            </oj-c-menu-button>
354            <div id="ny_popup1_id" class="ny_popup1">
355              <div class="ny_popup1-arrow-border"></div>
356              <div class="ny_popup1-arrow"></div>
357              <div class="ny_popup1-content">
358                <button id="close-ny_popup1" class="close-ny_popup1">
359                  <i class="fas fa-times"></i>
360                </button>
361                <p class="oj-sm-margin-2x-top">
362                  <i class="fas fa-circle-info oj-icon-color-info fa-1x"></i> Ny funksjonalitet i innstillinger.<br> Klikk på <oj-bind-text
363                    value="[[!isSmall() ? 'navnet ditt' : 'profil-ikonet']]"></oj-bind-text> for å se valg.
364                </p>
365                <a href="#" on-click="[[setDontShowPopupAgainCookie]]"
366                  class="oj-sm-margin-2x-top oj-typography-body-sm" style="float:right;">
367                  Lukk og ikke vis igjen
368                </a>
369              </div>
370            </div>
371          </div>
372        </div>
373        <div role="navigation" class="oj-web-applayout-max-width oj-web-applayout-navbar">
374
375        </div>
376      </header>
377
378      <!-- <div id="navDrawer" role="navigation" class="oj-contrast-marker oj-web-applayout-offcanvas oj-offcanvas-start"></div> -->
379      <oj-drawer-layout start-opened="[[startOpened]]" on-start-opened-changed="[[startOpenedChangedHandler]]"
380        class="height_minus_header">
381
382        <div id="id_main_module">
383          <!-- Main module -->
384          <!-- Gammel -->
385          <!-- <oj-module role="main" config="[[moduleConfig]]"> </oj-module> -->
386          <!-- Ny -->
387         <oj-module role="main" config="[[moduleAdapter.koObservableConfig]]"> </oj-module>
388          <!-- Main module slutt -->
389        </div>
390
391
392        <div slot="start" :class="[[menuColorClass()]]" role="navigation"
393        id="demodrawerstart">
394          <div class="demo-drawer-header oj-flex-bar">
395            <div class="oj-flex-bar-start">
396              <h6>Meny</h6>
397            </div>
398            <div class="oj-flex-bar-end">
399              <oj-c-button display='icons' chroming='borderless' on-oj-action='[[invertMenuColor]]' label="Inverter farger">
400                <span slot='startIcon' class='fa-solid fa-eye-dropper-half'
401                  style="font-size: 20px; float: right !important;"></span>
402              </oj-c-button>
403              <oj-bind-if test="[[!isSmall()]]">
404                <oj-bind-if test="[[stickyMenu() == true]]">
405                  <oj-c-button display='icons' id="stickyMenyBtn1" chroming='borderless' on-oj-action='[[setSticky]]' label="Løsne menyen">
406                    <span slot='startIcon' class="fa-solid fa-lock" style="font-size: 20px;"></span>
407                  </oj-c-button>
408                </oj-bind-if>
409                <oj-bind-if test="[[stickyMenu() == false]]">
410                  <oj-c-button display='icons' id="stickyMenyBtn2" chroming='borderless' on-oj-action='[[setSticky]]' label="Fest menyen">
411                    <span slot='startIcon' class="fa-solid fa-lock-keyhole-open" style="font-size: 20px;"></span>
412                  </oj-c-button>
413                </oj-bind-if>
414              </oj-bind-if>
415              <oj-c-button display='icons' chroming='borderless' on-oj-action='[[startToggle]]' label="Lukk meny">
416                <span slot='startIcon' class='fa-solid fa-xmark'></span>
417              </oj-c-button>
418            </div>
419          </div>
420          <!-- Selve menyen -->
421          <oj-navigation-list id="navDrawerList" role="navigation" data="[[navDataProvider]]" drill-mode="collapsible"
422            on-click="[[menuSelectionChange]]" selection="{{selection.path}}"
423            on-selection-changed="[[menuSelectionChange]]" :class="[[colorClassMenuLabels]]"> 
424
425            <template slot="itemTemplate" data-oj-as="item">
426              <li :class="[[item.data.class]]">
427                <a href="#">
428                  <oj-bind-if test="[[item.data.count]]">
429                    <span class="oj-navigationlist-item-end"><span class="oj-badge oj-badge-danger">
430                        <oj-bind-text value="[[item.data.count]]">
431                        </oj-bind-text>
432                      </span></span>
433                  </oj-bind-if>
434                  <span :class="[['oj-navigationlist-item-icon ' + item.data.iconClass]]"></span>
435                  <oj-bind-text value="[[item.data.name]]"> </oj-bind-text>
436                </a>
437              </li>
438            </template>
439          </oj-navigation-list>
440      </oj-drawer-layout>
441
442      <!-- Drawer ferdig -->
443      
444      <oj-dialog cancel-behavior='icon' style="display:none;width: 80vw; max-width: 500px;" id="skoler_dialog"
445        dialog-title="Bytt skole">
446        <div slot="body">
447          <oj-list-view id="lw_skoler" aria-label="Skoler" data="[[skolerProvider]]"
448            gridlines.item="visible" class="oj-sm-padding-2x-vertical"
449            selected="{{selectorSelectedItems}}" selection-mode="single" on-oj-item-action="[[ok_bytt_skole]]">
450            <template slot="itemTemplate" data-oj-as="item">
451              <oj-c-list-item-layout>
452                <div class="oj-typography-body-md">
453                  <img :src="[['data:image/png;base64,' + item.data.Logo]]" alt="Logo" height="58px" />
454                  <oj-bind-text value="[[item.data.Skolenavn]]"></oj-bind-text>
455                </div>
456              </oj-c-list-item-layout>
457            </template>
458          </oj-list-view>
459        </div>
460        <div slot="footer">
461          <oj-c-button id="okButton" on-oj-action="[[lukk_skoler_dialog]]" label="Lukk"></oj-c-button>
462        </div>
463      </oj-dialog>
464
465      <!-- Hva er nytt dialog -->
466      <oj-dialog cancel-behavior="icon" style="display:none;width: 80vw; max-width: 500px;" id="whats_new_dialog"
467        dialog-title="Hva er nytt?">
468        <div slot="body">
469          <div class="oj-sm-padding-2x">
470            <oj-bind-for-each data="[[whatsNewItems]]">
471              <template>
472                <div class="oj-sm-padding-2x-bottom">
473                  <div class="oj-typography-subheading-sm oj-sm-padding-1x-bottom">
474                    <span class="fas fa-sparkles oj-icon-color-warning oj-sm-padding-1x-end"></span>
475                    <oj-bind-text value="[[$current.data.title]]"></oj-bind-text>
476                  </div>
477                  <div class="oj-typography-body-md">
478                    <oj-bind-text value="[[$current.data.description]]"></oj-bind-text>
479                  </div>
480                </div>
481              </template>
482            </oj-bind-for-each>
483          </div>
484        </div>
485        <div slot="footer">
486          <oj-c-button id="btnCloseWhatsNew" on-oj-action="[[closeWhatsNew]]" label="Lukk"></oj-c-button>
487        </div>
488      </oj-dialog>
489    </div>
490
491
492    <!-- This injects script tags for the main javascript files -->
493<!-- injector:scripts -->
494<script type='text/javascript' src='https://static.oracle.com/cdn/jet/20.1.0/3rdparty/require/require.js'></script>
vendor: 1 bytes, line 494
494
495<script type='text/javascript' src='https://static.oracle.com/cdn/jet/20.1.0/default/js/bundles-config.js'></script>
vendor: 1 bytes, line 495
495
496<script type='text/javascript' src='js/bundle.js'></script>
496
497<!-- endinjector -->
498
499    <!-- 
499<script>
500    var prevScrollpos = window.pageYOffset;
501    window.onscroll = function() {
502    var currentScrollPos = window.pageYOffset;
503    //console.log(currentScrollPos)
504      if (prevScrollpos > currentScrollPos) {
505        document.getElementById("navbar").style.top = "0";
506      } else {
507        document.getElementById("navbar").style.top = "-58px";
508      }
509      prevScrollpos = currentScrollPos;
510    }
511    </script>
511 -->
512</body>
513
514</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.