我正在尝试制作一个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);
}
答案 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
。