2016-03-28 9 views
7

quindi il mio codice sotto funziona da solo in un jsfiddle. ma per qualche strana ragione .. ottengo questo errore costantemente dopo la spinta a un server di vivere:/e non riesco a capire perché ...Unchaught TypeError: Impossibile eseguire 'observ' su 'MutationObserver': il parametro 1 non è di tipo 'Node'

errore:

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

In entrambi i riferimenti "elemento"? –

+0

No solo quando chiamate 'observer.observe()'. Oh aspetta, no, mi sto sbagliando completamente. – Pointy

+0

Beh .... Touche ' –

risposta

4

ho incontrato lo stesso errore, e risolto inserendo il metodo .observe() sotto onload/ins ready Tead della definizione dell'osservatore var, oltre alla definizione del target (elemento) e di configurazione delle variabili:

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

Eseguire il frammento di codice, fare clic sul pulsante "Aggiungi elemento della lista" e guardare il cambiamento accedi alla console.

Problemi correlati