2017-03-06 81 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);