簡體   English   中英

如何在 ajax 中加載多個項目?

[英]How to load multiple items in ajax?

我試圖在單個 HTML 頁面中調用不同的外部 SVG 。 如果我堅持一個,一切都會完美無缺。 一旦我想調用不同的 SVG 精靈,我最終只加載了一個。 所以基本上,它只加載一個精靈而忽略其他精靈。 我在這里的語法中遺漏了什么嗎?

我正在使用以下 ajax 代碼 //我是新手,所以我確定我在這里犯了一個可怕的錯誤:)

<script>
var ajax = new XMLHttpRequest();
ajax.open("GET", "sprite1", "sprite2", "sprite3", true);
ajax.send();
ajax.onload = function(e) {
var div = document.createElement("div");
div.innerHtml = ajax.responseText;
document.body.insertBefore(div, document.body.childNodes[0]);
}
</script>

然后在 HTML 我正在使用這個

<svg class="sprite1">
    <use xlink:href="#icon-name">
</svg>

XMLHttpRequest.open()方法只能接受一個 URL ,因此您需要為每個精靈單獨請求。 試試這樣:

var sprites = ["sprite1", "sprite2", "sprite3"];

sprites.foreach(function(sprite, index) {
   var ajax = new XMLHttpRequest();
   ajax.open("GET", sprite, true);
   ajax.send();
   ajax.onload = function(e) {
      var div = document.createElement("div");
      div.innerHtml = ajax.responseText;
      document.body.insertBefore(div, document.body.childNodes[0]);
   };
});

請注意,無法保證精靈返回的順序,因此您可能希望將每個精靈加載到 HTML 中的特定元素。 您可以使用示例中的index來確定已加載的內容。

暫無
暫無

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

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