2016-10-20 2 views
2

youtube subtitles을 활성화 할 때 DOM에서 확인 된 자막 마술의 단어를 id="caption-window-1"으로 선택하려고하면 가장 먼저 알아챌 수있는 것은 선택할 수 없으므로이 스크립트를 다음과 같이 실행합니다. 크롬 브라우저의 개발자 도구를 사용하여 JS 콘솔을 완벽하게YouTube 자막을 선택하는 방법은 무엇입니까?

(function() { 
var caption= document.getElementById("caption-window-1"); 
caption.style.cursor="text"; 
caption.style["-webkit-user-select"]="all"; 
      })(); 

의 회전을하지만, 자막은 여전히 ​​'그래서 내가 할 수있는 (당신이 YouTube에 자기가 그것을 시도 할 수 있습니다)

그것을 클릭시 이동 캡션에있는 한 단어를 쉽게 선택하면됩니다.

javascript를 사용하여 문제를 해결할 수있는 아이디어가 onclick 이벤트 캡션 이동을 사용하지 않도록 설정 하시겠습니까?

답변

0

문제는 텍스트 필드가 드래그 가능하여 사용자가 화면의 아무 곳에 나 필드를 배치 할 수 있으므로 사용자가하려는 것과 충돌합니다. 대신 텍스트를 녹음하고 배열에 푸시하고 비디오가 끝난 후에 파싱 할 수 있습니다.

코드 조각은 매우 우아 아니라 가야 당신은 시작 :

var wordsAll = []; 
var wordsPrev = []; 
var previousLine = ''; 
function checkText() { 
    var caption= document.getElementById("caption-window-1"); 
    requestAnimationFrame(checkText); 
    if (caption === null) return; 
    var wordsNow = caption.textContent.split(' '); 
    if (wordsPrev.length > 0 && wordsPrev.length < wordsNow.length) { 
    for (var i=0,l= wordsNow.length; i<l; i++) { 
     wordsAll.push(wordsPrev[i]); 
    } 
    } 
    wordsPrev = wordsNow.slice(l); 
} 
checkText(); 

그럼 그냥 console.log(wordsAll.join(' '))

희망 같은 것을하는 데 도움이 할!

+0

덕분에, 그들은 내가 sutitles을 다운로드하려는 경우에 매우 유용하지만, 난 그냥 모두들 사이에서 단어를 선택합니다 자막 – Jolo

+0

에있는 단어는 Google 번역 확장 프로그램이이 선택 항목을 감지하도록 허용하도록 선택하면 번역 할 수 있습니다. 어떤 방식 으로든 제안하는 것이 좋습니다. – Jolo

0

당신은 즉, 텍스트 선택

youtube subtitle event listeners,이를 처리하고 기본 동작을 supress 수 있습니다 자바 스크립트 유튜브 전에 차단하기 위해 이벤트 stopPropagation 전화 capturing 이벤트 리스너를 설치해야합니다. 내가 할 노력하고있어입니다

+0

문제는 내가 자막의 cuption 움직임을 일으키는 이벤트를 모른다는 것입니다 ... – Jolo

관련 문제