用于删除Youtube自动播放功能的我的Chrome插件会在论坛上发布

时间:2014-01-23 16:46:03

标签: javascript google-chrome google-chrome-extension

我正在尝试制作一个Chrome插件,用于删除嵌入式Youtube视频中的自动播放功能。但是,当我尝试在一个对帖子具有最小字符限制的论坛上发帖时,我收到关于我的帖子不够长的错误。只有当我的插件处于活动状态时才会发生这是我的代码:

的manifest.json:

{
   "content_scripts": [ {
      "js": [ "js/replace.js" ],
      "matches": [ "http://*/*" ],
      "run_at": "document_idle"
   } ],
   "description": "some text",
   "manifest_version": 2,
   "name": "No autoplay",
   "permissions": [ "tabs", "http://*/*" ],
   "version": "1.0"
}

replace.js:

var str1 = '&autoplay=1', str2 = '?autoplay=1', empty = '', regex1 = /\\&autoplay=1/gi, regex1 = /\\?autoplay=1/gi;
var ind = document.body.innerHTML.indexOf(str1);
while (ind != -1) {
    console.log("replacing");
    document.body.innerHTML = document.body.innerHTML.replace(regex1, empty);
    ind = document.body.innerHTML.indexOf(str1);
}
ind = document.body.innerHTML.indexOf(str2);
while (ind != -1) {
    console.log("replacing");
    document.body.innerHTML = document.body.innerHTML.replace(regex2, empty);
    ind = document.body.innerHTML.indexOf(str2);
}

1 个答案:

答案 0 :(得分:1)

如果链接包含str2,则表示您正在删除?个字符。这意味着,所有其他$ _GET参数都被移动到url部分。

例如:

someurl.com?autoplay=1&movie_id=10变成了someurl.com&movie_id=10 ...而且它无效,因为它应该是someurl.com?movie_id=10 ...

更安全的方法是将autoplay=1替换为autoplay=0