2016-03-28 4 views
7

, поэтому мой код ниже работает автономно в jsfiddle. но по какой-то причине .. я получаю эту ошибку последовательно после толкая его на реальном сервере:/и я не могу понять, почему ...Uncaught TypeError: Не удалось выполнить «наблюдать» на «MutationObserver»: параметр 1 не имеет тип «Node»

ошибка:

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); 
+0

В ссылках на «элемент»? –

+0

Нет, когда вы вызываете 'observer.observe()'. Ой, подождите, нет, я совершенно неправ. – Pointy

+0

Хорошо .... Touche ' –

ответ

4

я встретил ту же ошибку, и решить ее путем вставки метод .Принимать() при OnLoad/готовых модулей TEAD определения вара наблюдателя, плюс определение цели (элемент) и конфигурации переменные:

$(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>

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