Dar*_*tal 5 javascript google-chrome browser-extension google-chrome-extension content-script
我正在尝试通过更改嵌入在视频的html观看页面中的player_api脚本内部的一些变量来更改YouTube播放器的某些行为。
问题是,无论我如何尝试,播放器的嵌入式脚本始终会在我的扩展程序对其进行修改之前运行。因此,保持玩家的行为相同。
我尝试将清单中的run_at属性设置为document-start,但是脚本根本没有运行。
在更改脚本之前,我该怎么做才能停止执行该脚本?
PS:我尝试通过截获html调用并使用Charles Proxy编辑正文来更改脚本,然后按我的意愿更改了播放器的行为。因此,它知道,如果在正确的时间完成,它应该可以工作。
。
manifest.json
{
"manifest_version": 2,
"name": "YouFit For YouTube",
"version": "1",
"content_scripts": [{
"js": ["content.js"],
"matches": ["https://*.youtube.com/watch?*",
"https://*.youtube.com/watch?*"],
}],
"browser_action": {
"default_icon": "icon.png"
}
}
Run Code Online (Sandbox Code Playgroud)
content.js
function changeBehavior() {
var scriptElements = document.getElementsByTagName('script');
for (var i = 14; i < scriptElements.length; i++) {
var curScriptBody = scriptElements[i].outerHTML;
// Find the script i'm interested in
if (curScriptBody.indexOf("var ytplayer") != -1) {
scriptElements[i].outerHTML = scriptElements[i].outerHTML.replace("<text>", "<replacement text>");
alert("Replaced");
break;
}
}
}
changeBehavior();
Run Code Online (Sandbox Code Playgroud)
你有没有尝试过这样的事情?
var script = document.createElement('script');
script.textContent = "/* What you have in content.js right now */";
(document.head||document.documentElement).prepend(script);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |