diff --git a/controls.css b/controls.css index 30f6f0f..699d601 100644 --- a/controls.css +++ b/controls.css @@ -42,8 +42,8 @@ height: 16px; position: relative; display: inline-block; - vertical-align: top; - background: url('chrome-extension://__MSG_@@extension_id__/mute.png') no-repeat top left; + vertical-align: top; + /*background: url('chrome-extension://__MSG_@@extension_id__/mute.png') !important;*/ background-repeat: no-repeat; padding: 6px; } \ No newline at end of file diff --git a/controls.js b/controls.js index 5ade809..3f2326e 100644 --- a/controls.js +++ b/controls.js @@ -30,8 +30,7 @@ showMembersBtn.addEventListener('click', function() { */ function muteBtnHTML(id) { - return ` - + return ` 🔇 Заглушить ` @@ -42,29 +41,37 @@ function addControls() { for (var item of messages) { var actionsArea = item.getElementsByClassName("im-mess--actions")[0]; - var sender_id = item.parentElement.parentElement.parentElement["dataset"].peer + if (actionsArea && actionsArea.lastChild.className != "mute_message") { + var sender_id = item.parentElement.parentElement.parentElement["dataset"].peer - actionsArea.innerHTML += muteBtnHTML(sender_id); - var muteBtn = actionsArea.getElementsByClassName("mute_message")[0]; - muteBtn.style.display = "none"; + actionsArea.innerHTML += muteBtnHTML(sender_id); + var muteBtn = actionsArea.getElementsByClassName("mute_message")[0]; + muteBtn.style.display = "none"; - actionsArea.parentElement.addEventListener("mouseenter", function( event ) { - event.target.getElementsByClassName("mute_message")[0].style.display = ""; - }); - - actionsArea.parentElement.addEventListener("mouseleave", function( event ) { - event.target.getElementsByClassName("mute_message")[0].style.display = "none"; - }); - - muteBtn.addEventListener("click", function(event) { - var clicked_id = event.target.id.substr(event.target.id.length - 9); - - chrome.storage.sync.set({idToHide: clicked_id}, function() { - hidePeer(clicked_id); - console.log('idToHide: ' + clicked_id); + actionsArea.parentElement.addEventListener("mouseenter", function( event ) { + event.target.getElementsByClassName("mute_message")[0].style.display = "inline-block"; }); - }); + + actionsArea.parentElement.addEventListener("mouseleave", function( event ) { + event.target.getElementsByClassName("mute_message")[0].style.display = "none"; + }); + + muteBtn.addEventListener("click", function(event) { + var clicked_id = event.target.id.substr(event.target.id.length - 9); + + chrome.storage.sync.set({idToHide: clicked_id}, function() { + hidePeer(clicked_id); + console.log('idToHide: ' + clicked_id); + }); + }); + } } } -addControls(); +var chatBody = document.getElementsByClassName("_im_peer_history im-page-chat-contain")[0]; + +chatBody.addEventListener('DOMNodeInserted', function(event) { + if (event.target.className == 'im-mess--check fl_l') { + addControls(); + } +}); diff --git a/manifest.json b/manifest.json index 1ad8f75..36940b3 100644 --- a/manifest.json +++ b/manifest.json @@ -24,7 +24,7 @@ "js": ["hide_element.js"] }, { - "matches": ["https://*.vk.com/*"], + "matches": ["https://*.vk.com/im*"], "js": ["controls.js"], "css": ["controls.css"] }