geçerli:
(function($) {
var oldhtml = $.fn.html;
$.fn.html = function() {
var args = JSON.stringify(arguments);
// do some stuff with args
args = JSON.parse(args);
var ret = oldhtml.apply(this, args);
return ret;
};
})(jQuery);
bu hatayı alınıyor arguments
bir Array nesnesi değildir, dizinlere sahip bir anahtar/değer nesnesi gibi ayrıştırır. Böylece, args
ayrıştırıldıktan sonra artık bir dizi değil, bunun yerine bir nesnedir.
Yani olası bir çözüm bir diziye argümanlar dönüştürmek olduğunu, o zaman
(function($) {
var oldhtml = $.fn.html;
$.fn.html = function() {
$('#args-strinfigy').text(JSON.stringify(arguments)); //see this
var args = JSON.stringify([].slice.call(arguments)); //or JSON.stringify(Array.from(arguments))
// do some stuff with args
args = JSON.parse(args);
var ret = oldhtml.apply(this, args);
return ret;
};
})(jQuery);
$('div').html('asdfasd').appendTo('body')
div {
background-color: grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p></p>
<div>
</div>
<pre id="args-strinfigy"></pre>
hata gösterdiğin koduna tamamen ilgisiz görünüyor stringify. Test durumum bu hatayı almaz: https://jsfiddle.net/06mjdfgu/. Çalışmıyor çünkü 'args' bir nesne ve' argümanlar' bir dizi olmalıdır. Aynı verilere, tekrar sardığınız aynı işleve geri vermeden önce bağlayıcı/ayrıştırma noktasından bile emin değilim. –
yea, html() ... – ChrisAdmin
... 'u aramanız gerekecek mi? $ ('div'). html ('foo'); ' –