Отказ от ответственности: это домашнее задание.
Я пытаюсь написать расширение Chrome, которое обходит стандартный код очистки кадра, показанный здесь:
if(top!= self){
top[location]= self[location];
}
Я понимаю, чтоJS инъекция это то, что мне нужно здесь.Я пытался использовать Chrome content_scripts, чтобы сделать это.Я не знаю, достаточно ли оставить мой JS-скрипт, способный к инъекции, или мне нужно выборочно внедрить его только тогда, когда на странице присутствует код с перебором кадров.
manifest.json
...
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["bust.js"],
"run_at": "document_start",
"all_frames": true
}
],
...
bust.js
console.log("It ran.");
var injected= document.createElement("script");
injected.textContent = "if (top !== self) {window.self = window.top;}";
document.documentElement.appendChild(injected);
Однако на самом деле ничего не происходит, когда я это делаю.Я обновляю свою тестовую страницу (в коде HTML которой есть код перебора кадров), и мой console.log даже не запускается.Я уверен, что просто упускаю из виду что-то глупое, но не похоже, что JS даже вводится с самого начала, не говоря уже о корректной работе.