2016-11-13 5 views
0

this 페이지에서 "느린 다운로드"를 클릭하면 ID가 superbox-wrappersuperbox-overlay 인 화면을 덮는 오버레이 모달을 제공합니다. Chrome 개발자 도구에서 파일을 삭제하여 제거 할 수 있습니다.새 페이지에서 노드를 삭제할 수 있습니까?

지금 나는 "느린 다운로드"버튼을 클릭하는 코드를 가지고 있습니다.

function SkipId(objId){ 
    var oId = document.getElementById(objId); 
    oId.click(); 
} 

window.onload = function(){ 
    SkipId('slow-download'); 
}; 

나는 어떻게 superbox-wrappersuperbox-overlay을 제거 할 수 있습니다

document.getElementById('superbox-wrapper').hide(); 
document.getElementById('superbox-overlay').hide(); 

var element = document.getElementById("superbox-wrapper"); 
element.outerHTML = ""; 
delete element; 

function remove(id) { 
    var elem = document.getElementById(id); 
    return elem.parentNode.removeChild(elem); 
} 

remove('superbox-wrapper'); 

getElementById('superbox-wrapper').remove(); 

질문

에 의해 제거하려고 노력 해요?

+0

이것은 일반적인 문제입니다 (그러나 사기 망치 대상은 아직 없습니다). 'waitForKeyElements' (쉬운) 또는'MutationObserver' (원시)를 조회하십시오. –

+0

@BrockAdams - DOM에 이미 이러한 요소가 포함 된 페이지가 다시로드되기 때문에 MutationObserver가 작동하지 않습니다. – skav

+0

@Skav,'MutationObserver' 기술을 사용할 때, 전형적으로 기존의 엘리먼트에 대한 체크가 또한 실행됩니다. –

답변

0

이이 솔루션을 언급

// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js 
// @require https://greasyfork.org/scripts/5392-waitforkeyelements/code/WaitForKeyElements.js?version=115012 

waitForKeyElements("div.superbox-wrapper", removeSuperbox); 

function removeSuperbox() { 
    document.getElementById('superbox-wrapper').hide(); 
} 
+0

코드는 실제로 다음과 같아야합니다.'function removeSuperbox (jNode) {jNode.hide(); }' –

-1

이 같은 요소를 제거하기 위해 부모의 removeChild 기능을 사용할 수있는 요소를받은 후 : @Brock 아담스 바탕으로

     
 
let overlay = document.getElementById("superbox-overlay"); 
 
let wrapper = document.getElementById("superbox-wrapper"); 
 

 
if(overlay){ 
 
    overlay.parentElement.removeChild(overlay); 
 
} 
 

 
if(wrapper){ 
 
    wrapper.parentElement.removeChild(wrapper); 
 
}

+0

이것은 작동하지 않습니다. OP의 코드가 작동하지 않는 것과 같은 이유로. 이것은 사용자 스크립트 시나리오이며 문제의 요소는 userscript가 실행 된 후 오랫동안 AJAX를 통해 추가됩니다. –

+0

@BrockAdams - 요소가 AJAX 요청과 함께로드되지 않습니다. '느린 다운로드'버튼을 클릭하면 해당 요소가 이미로드 된 전체 페이지가 다시로드됩니다. 위의 tampermonkey 스크립트는 팝업이 제거되도록합니다. – skav

+0

OP의 실제 페이지를 찾고 테스트 했습니까? 그렇다면 링크 하시겠습니까? 또한, 코드가 작동한다면, OP의'document.getElementById ('superbox-wrapper'). hide()'도 작동해야합니다. 두 코드 모두 콘솔에서 작동하지만 userscript에서는 작동하지 않습니다 (대부분). –