簡體   English   中英

如何使用 vanilla JavaScript 將 HTML 元素插入到 Angular 應用程序網頁中?

[英]How can I use vanilla JavaScript to insert HTML elements into an Angular application webpage?

我創建了一個外部/公共 JavaScript 庫。

當我通過在<HEAD>包含腳本在 Angular 1.x Web 應用程序上測試它時,我發現它通過使點擊什么都不做而破壞了 Angular 應用程序。

經過數小時的調試命名空間、屬性和函數; 我終於找到了罪魁禍首是當我將 HTML 元素插入網頁時。 我的 JS 庫目前正在使用此代碼將 HTML 插入網頁。 我將如何讓它支持 Angular 應用程序(或一般的 SPA)?

var HTML_ELEMENTS = ['<h1>Hi</h1>', '<div>Hello again.</div>'];

for (var i = 0; i < HTML_ELEMENTS.length; i++) {
  document.body.innerHTML += HTML_ELEMENTS[i];
};

我將 HTML 元素添加到document.body底部的原因之一是因為我將這些元素設置為在頁面中具有最高的 z-index,因此任何競爭元素都會為我插入的 HTML 元素生成 z-index。

用我的實現回答我自己的問題。 所有功勞都歸功於@Cbroe 為我指明了正確的方向。

基本上,你不能在 Angular 中使用document.body.innerHTML ,所以這是我最終使用的:

var HTML_ELEMENTS = ['<h1>Hi</h1>', '<div>Hello again.</div>'];

for (var i = 0; i < HTML_ELEMENTS.length; i++) {
  var child = document.createElement('div');
  child.innerHTML = HTML_ELEMENTS[i];
  child = child.firstChild;
  document.body.appendChild(child);
};

暫無
暫無

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

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