在非同步載入的腳本中,此程式碼可以替換為:
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() 會出現問題,因為文件不再開放用於寫入。
解決方案:明確 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().
強加免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3