2016-10-20 74 views
2

當激活YouTube字幕時,如果您嘗試在id="caption-window-1" DOM中標識的字幕標題中選擇一個字詞,首先要注意的是:它不是可選擇的,所以爲了使它可選,我在使用上的Chrome瀏覽器開發人員工具的JS控制檯:如何讓youtube字幕選擇?

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

反過來完美,但字幕還是點擊它時移動(你可以通過你自己的YouTube嘗試)

這樣我就可以」在標題中輕鬆選擇一個詞,它仍然在移動我所做的任何事情。

我想禁用onclick事件的標題運動任何想法來解決使用JavaScript?

回答

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

中的文字選擇它允許谷歌翻譯擴展檢測到這個選擇,然後我可以翻譯它,任何方式這是一個很好的主意,你建議。 – Jolo

0

您需要安裝capturing事件偵聽器調用stopPropagation對事件的YouTube JavaScript可以處理它們並剿默認操作之前攔截它,即文本選擇

youtube subtitle event listeners

+0

問題在於我不知道引起字幕的字幕運動的最終事件... – Jolo