簡體   English   中英

如何在現代瀏覽器中全局監聽獲取完成?

[英]How can I globally listen for fetch completion in modern browsers?

在我的應用程序中,我使用 JavaScript 的fetch在頁面加載完成后加載內容。 只是一些相當標准的東西,比如:

fetch("/memos")
  .then(response => response.text())
  .then(html => {
    this.listTarget.innerHTML = html;
});

listTarget只是一個頁面元素。它是一個刺激的東西。)

但是,我還使用了一些 JS 庫,它們在頁面加載(或 Turbolinks 加載)時掃描 DOM,以注入圖標和日期時間選擇器等內容。 我需要能夠告訴這些庫在fetch完成后再次掃描 DOM,因為fetch的內容可以包括圖標等。

有沒有辦法在全局范圍內執行此操作,或者我是否必須在我的代碼庫中的每次fetch后手動調用我的庫的 DOM 掃描方法? 我有很多fetch調用。

我發現的解決方案要么在fetch之后手動調用方法,要么與fetch 事件偵聽器有關,它似乎不支持 Safari,而且似乎fetch時觸發,而不是在fetch完成時觸發。

我需要支持最新的 Firefox、Chrome 和 Safari(包括手機)。

您可以執行一個實用程序 function 每次調用 fetch 時執行一個操作,如下所示:

function myFetch(url) {
  return fetch(url).then(function(result) {
    // do something...
    return result;
   });
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM