2017-06-01 175 views
0

我想制作一个Chrome扩展程序,它使用java脚本在YouTube上右键单击执行,但失败。通过点击鼠标点击Chrome插件不起作用

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); 
} 
} 

所有成功添加并插入YouTube页面,除了onclick代码行。
我没有解决,但变得很困惑。任何人都请帮助我真诚地给予明确的解释。任何利益指南将欣然赞赏。

回答

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+'/'); 
};