Uncaught TypeError: Не удалось выполнить «наблюдение» над «MutationObserver»: параметр 1 не относится к типу «Узел»

, поэтому мой код ниже работает отдельно в 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);
7 голосов | спросил No-Spex 28 MarpmMon, 28 Mar 2016 20:49:02 +03002016-03-28T20:49:02+03:0008 2016, 20:49:02

1 ответ


0

Я столкнулся с той же ошибкой и решил ее, вставив метод .observe () в onload /ready вместо определения var наблюдателя, плюс определение переменных target (element) и config:

 $(document).ready(function () {
    var target = document.getElementById("myList");
     var config = {
        childList: true,
        subtree: true,
        attributes: true,
        characterData: true
    };
//note this observe method
    observer.observe(target, config);
    console.log("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>

Пожалуйста, запустите фрагмент кода, нажмите кнопку «Добавить элемент списка» и посмотрите журнал изменений в консоли.

ответил Jerry Ben 12 J000000Tuesday16 2016, 12:09:10

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132