Tôi cần được thông báo khi một phần tử có nav 'lớp' được tạo khi tài liệu đang tải. Googling tôi tìm thấy MutationObservers và nghĩ rằng họ sẽ hoàn hảo, nhưng tôi dường như không thể làm cho nó hoạt động được.Xem để tạo yếu tố trong tập lệnh viết bằng mỡ?
// ==UserScript==
// @name ii-shortcuts
// @namespace https://github.com/RedHatter
// @include *
// @version 1
// @run-at document-start
// ==/UserScript==
var observer = new MutationObserver(function(mutations)
{
mutations.forEach(function(mutation)
{
if (mutation.target.getAttribute('class') == 'nav')
GM_log('nav creation');
});
});
observer.observe(document, {subtree: true, attributes: true, attributeFilter: ['class']});
Tôi cũng đã thử.
// ==UserScript==
// @name ii-shortcuts
// @namespace https://github.com/RedHatter
// @include *
// @version 1
// @run-at document-start
// ==/UserScript==
var observer = new MutationObserver(function(mutations)
{
mutations.forEach(function(mutation)
{
if (mutation.addedNodes[0].getAttribute('class') == 'nav')
GM_log('nav creation');
});
});
observer.observe(document, {subtree: true, childList: true});
Nhưng trong trường hợp thứ hai là nhật ký 'nav creation' khi tải trang. Tôi đang thiếu gì?
@CrazyTrain Không accouding đến [số kỹ thuật] (http://www.w3.org/html/wg/drafts /html/master/syntax.html#syntax) "Sự kiện đột biến DOM không được kích hoạt cho các thay đổi do UA phân tích cú pháp tài liệu ... Tuy nhiên, các nhà quan sát đột biến làm cháy, theo yêu cầu của đặc tả DOM." – RedHatter
bạn có thể sử dụng [đến.js] (https://github.com/uzairfarooq/arrive), nó cung cấp api đơn giản để nghe các yếu tố sáng tạo (sử dụng MutationObserver nội bộ) –
Hmm ... trông rất đẹp. Cảm ơn bạn @UzairFarooq – RedHatter