使用鼠标单击创建Chrome插件不起作用

时间:2017-06-01 07:27:02

标签: javascript windows google-chrome

我想制作一个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页面 我没有解决,反而变得如此困惑。任何人请帮助我真诚地给出明确的解释。任何福利指南都将很高兴。

1 个答案:

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