我想制作一个Chrome扩展程序,使用java脚本在YouTube上右键单击执行,但失败了。
if(document.URL.match('youtube.com/') && new RegExp('v=[a-zA-Z0-9-_]{11}').exec(document.URL)) {
var YID = RegExp.lastMatch.substr(2);
if(document.getElementById('yt-masthead-content')) {
var Button = document.createElement('button');
Button.onclick = function() {var ID = new RegExp('v=[a-zA-Z0-9-_]{11}').exec(document.URL).substr(2);
window.open('http://www.music-clips.net/v/'+ID+'/');
};
Button.className = 'yt-uix-button start link-gplus-lightbox yt-uix-sessionlink yt-uix-button-default';
Button.setAttribute('style', 'float:right;', 0);
Button.innerHTML = 'Extract & Download MP3';
document.getElementById('yt-masthead-content').appendChild(Button);
}
}
除了onclick代码行外,所有内容都已成功添加并插入YouTube页面 我没有解决,反而变得如此困惑。任何人请帮助我真诚地给出明确的解释。任何福利指南都将很高兴。
答案 0 :(得分:0)
问题是来自exec
的返回值是一个数组而不是字符串。您可以使用toString()
方法转换它:
Button.onclick = function() {var ID = new RegExp('v=[a-zA-Z0-9-_]{11}').exec(document.URL).toString().substr(2);
window.open('http://www.music-clips.net/v/'+ID+'/');
};