![](/img/trans.png)
[英]I am getting "Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'."
[英]Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'
所以我下面的代码在 jsfiddle 中独立工作。 但出于某种奇怪的原因..在将其推送到实时服务器后,我始终收到此错误:/我不知道为什么......
错误:
mycodewitherror.js:23 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'.
js:
$(document).ready(function() {
// The below collects user login name, new login date and time, and previous use URL
var element = document.querySelector('.pet-name');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
var username = $('.pet-name').text();
var referrer = document.referrer;
var date = new Date();
var month = date.getUTCMonth() + 1;
var day = date.getUTCDate();
var year = date.getUTCFullYear();
var time = date.toLocaleTimeString();
var formattedDate = month + '/' + day + '/' + year;
console.log("Pet Name Time");
console.log(referrer);
console.log(petname);
console.log(time);
console.log(formattedDate);
});
// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true };
// pass in the target node, as well as the observer options
observer.observe(element, config);
我遇到了同样的错误,并通过调用onload/ready
代码块中的.observe()
方法而不是观察者变量定义,加上target
元素和config
变量的定义来解决它:
请运行下面的代码片段,单击“添加列表项”按钮并在控制台中查看更改日志。
$(document).ready(function () { var target = document.getElementById("myList"); var config = { childList: true, subtree: true, attributes: true, characterData: true }; //note this observe method call observer.observe(target, config); console.log("Observer is registered"); }); var observer = new MutationObserver(function (mutationRecords, observer) { mutationRecords.forEach(function (mutation) { console.log("mutation change in ", mutation.type, " name: ",mutation.target); }); }); function add() { var index = $("ul li").length; var listItem = document.createElement("li"); listItem.textContent = index + 1; var target = document.getElementById("myList").appendChild(listItem, "before"); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <body > <button onclick="add()">Add list item</button> <hr> <ul id="myList"> <li><a href="#">1</a></li> <li><a href="#">2</a></li> </ul> </body>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.