2017-03-06 151 views
0

我找到了關於API here的解釋,它告訴我第二個參數是一個字符串。Element.insertAdjacentHTML()API在chrome中拋出錯誤55.0.2883.87

它在Firefox中表現正常。然而,在Chrome中,它顯示了以下錯誤:

errors about <code>Element.insertAdjacentHTML() API</code> in chrome

我只是好奇,是什麼使這個?是否因爲api仍然處於工作草案狀態而不同的瀏覽器會執行不同的實現?

下面是我的代碼:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
    <div id="div"> 
     <ul> 
      <li>xxx</li> 
      <li>xxx</li> 
      <li>xxx</li> 
      <li>xxx</li> 
      <li>xxx</li> 
     </ul> 
    </div> 
    <script> 
    //normal 
    // var pTag=document.createElement("p"); 
    // div.insertAdjacentElement("beforeend",pTag); 

    //throw error: 
    // Uncaught TypeError: Failed to execute 'insertAdjacentElement' on 'Element': parameter 2 is not of type 'Element'. 
    var txt = "<p>testtest</p>"; 
    div.insertAdjacentElement("beforeend",txt); 
    </script> 
</body> 
</html> 
+4

您正在閱讀insertAdjacentHTML'的'的文檔,但您使用'insertAdjacentElement' –

+0

@RolandStarke抱歉,這是我的疏忽,THX〜 – PageYe

回答

0

的參數不正確。第二個參數應該是html元素,在你的情況下它是一個字符串。

0

您的txt變量必須是一個元素。你可以試試這個:

var txt = document.createElement("p") 

txt.innerHTML = "testtest"; 
div.insertAdjacentElement("beforeend",txt);