在非同步載入的腳本中,此程式碼可以替換為:

var container = document.getElementById(\\\"container\\\");var content = document.createElement(\\\"span\\\");content.style.color = \\\"red\\\";content.innerHTML = \\\"Hello\\\";container.appendChild(content);

或者,由於容器是空的,可以使用以下簡化程式碼:

var container = document.getElementById(\\\"container\\\");container.innerHTML = \\'Hello\\';

透過採用這些DOM 操作技術,開發人員可以有效地從非同步載入的腳本寫入文檔,避免限制由document.write().

強加","image":"http://www.luping.net/uploads/20241104/17307187276728ac0702fe7.jpg","datePublished":"2024-11-09T03:16:22+08:00","dateModified":"2024-11-09T03:16:22+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼非同步載入腳本中 document.write() 受到限制?

為什麼非同步載入腳本中 document.write() 受到限制?

發佈於2024-11-09
瀏覽:405

Why is document.write() Restricted in Asynchronously Loaded Scripts?

非同步載入腳本中的執行限制:了解document.write() 限制

嘗試從非同步載入的腳本寫入文件會引發控制台訊息「無法在'文件'上執行'寫入':無法從非同步載入的外部腳本,除非明確開啟它。」儘管腳本的行為符合預期,但仍可能出現此訊息,讓開發人員感到困惑。

為什麼有限制

非同步載入的腳本通常在解析文件後執行,並且關閉。因此,從此類腳本中使用 document.write() 會出現問題,因為文件不再開放用於寫入。

解決方案:明確 DOM 操作

而不是使用 document .write(),開發人員必須在非同步載入的腳本中明確操作 DOM。這涉及創建 DOM 元素並使用 .appendChild()、.insertBefore() 等方法將它們插入到所需的父元素中,或設定 .innerHTML。

範例:DOM Manipulation

為了說明這一點,請考慮以下內嵌腳本:

在非同步載入的腳本中,此程式碼可以替換為:

var container = document.getElementById("container");
var content = document.createElement("span");
content.style.color = "red";
content.innerHTML = "Hello";
container.appendChild(content);

或者,由於容器是空的,可以使用以下簡化程式碼:

var container = document.getElementById("container");
container.innerHTML = 'Hello';

透過採用這些DOM 操作技術,開發人員可以有效地從非同步載入的腳本寫入文檔,避免限制由document.write().

強加
版本聲明 本文轉載於:1729404437如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3