Prechádzať zdrojové kódy

Preload external URLs, if attribute present in body

batbyR 6 rokov pred
rodič
commit
8c32d16723
2 zmenil súbory, kde vykonal 3 pridanie a 2 odobranie
  1. 2 1
      instantpage.js
  2. 1 1
      test/app.js

+ 2 - 1
instantpage.js

@@ -7,6 +7,7 @@ let lastTouchTimestamp
 const prefetcher = document.createElement('link')
 const isSupported = prefetcher.relList && prefetcher.relList.supports && prefetcher.relList.supports('prefetch')
 const allowQueryString = 'instantAllowQueryString' in document.body.dataset
+const allowExternalLinks = 'instantAllowExternalLinks' in document.body.dataset
 
 if (isSupported) {
   prefetcher.rel = 'prefetch'
@@ -94,7 +95,7 @@ function isPreloadable(linkElement) {
 
   const urlObject = new URL(linkElement.href)
 
-  if (urlObject.origin != location.origin) {
+  if (!allowExternalLinks && urlObject.origin != location.origin) {
     return
   }
 

+ 1 - 1
test/app.js

@@ -60,7 +60,7 @@ async function requestListener(req, res) {
       content += `<body>`
     }
     else {
-      content += `<body data-instant-allow-query-string>`
+      content += `<body data-instant-allow-query-string data-instant-allow-external-links >`
     }
     dataInstantAttribute = DATA_INSTANT ? `data-instant` : ``