前提・実現したいこと
youtubeで特定のチャンネルだけ見れるようにしたく、Tampermonkey(Javascript)でyoutubeのチャンネル名を取得し、それがホワイトリストのものと適合しなかったらウインドウを閉じる(見えなくする)というコードを動かそうとしています。
tampermonkeyのコードが転がっていたので流用したかったのですが、正しく動きません。
発生している問題・エラーメッセージ
下記のコードで、
var testString = $(".yt-user-info")[0].firstElementChild.innerHTML;
が機能せず、そこでコードが止まってしまいます(特にエラーなどなし)
該当のソースコード
JavaScript
1 2// ==UserScript== 3// @name Youtube Whitelist Script 4// @namespace http://tampermonkey.net/ 5// @version 0.1b 6// @description This script will remove the content from Youtube videos. Ignores whitelisted content 7// @author Louis Vaught 8// @match https://www.youtube.com/watch* 9// @copyright 2017, Louis Vaught 10// @require https://code.jquery.com/jquery-latest.js 11// ==/UserScript== 12 13var $ = window.jQuery; 14/////////////////////// 15// EDIT WHITELIST HERE: 16/////////////////////// 17 18var whitelist = [ 19 'TheBackyardScientist', 20 'Cody\'sLab', 21 'The Slo Mo Guys' 22]; 23//Make sure to match the name exactly. Not case-sensitive. 24 25////////////////////////// 26// String Search Function: 27////////////////////////// 28 29function searchStringInArray (str, strArray) { 30 for (var j=0; j<strArray.length; j++) { 31 var testStr = strArray[j].toLowerCase(); 32 var matchStr = str.toLowerCase(); 33 if (testStr.match(matchStr)) return j; 34 } 35 return -1; 36} 37 38//////////////////// 39// Main Script Body: 40//////////////////// 41 42$(document).ready(function() { 43 alert("main kokokara") 44 //Find the channel name on the page 45 var testString = $(".yt-user-info")[0].firstElementChild.innerHTML; 46// var testString ="hogehoge" 47 alert(testString) 48 //Search for the channel name in the array 49 var searchVal = searchStringInArray(testString,whitelist); 50 //If the channel isn't present, then delete content and error out: 51 if (searchVal==-1) { 52 $("#page-container").remove(); 53 alert("This channel isn't on the Youtube whitelist!"); 54 } 55});
試したこと
コードの上部で
// @require http://code.jquery.com/jquery-latest.js
var $ = window.jQuery;
と指定しているのでjQueryは使えると思うんですが、(エラーはでない)
実際には使えていないのかもしれません。
コードの間違い、もしくはjQueryの使い方の間違いなどがありましたらご指摘いただけますと嬉しいです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー