Причина, по которой это не работает, заключается в том, что JavaScript, добавляемый расширением Chrome (обычно в скрипте содержимого), выполняется в своей собственной песочнице, которая не имеет доступа к среде JavaScript, в которую загружена страница.
Вот ограничения JavaScript, которые происходят от Chrome Extension :
Here are some examples of what content scripts can do:
* Find unlinked URLs in web pages and convert them into hyperlinks
* Increase the font size to make text more legible
* Find and process microformat data in the DOM
However, content scripts have some limitations. They cannot:
* Use chrome.* APIs (except for parts of chrome.extension)
* Use variables or functions defined by their extension's pages
* Use variables or functions defined by web pages or by other content scripts
Если ваша цель состоит в том, чтобы действительно обернуть / переопределить собственный метод доступа JavaScript / DOM (yikes, кажется плохим), то один из способов выполнить JavaScript в контексте страницы - создать файл JavaScript с внешним размещением, а затем использовать Расширение Chrome для добавления элемента script
в DOM страницы, который ссылается на внешний файл. JavaScript, вставленный таким образом, будет работать в среде JavaScript страниц (это означает, что он не будет доступен для расширения Chrome).
Расширение Chrome JavaScript будет выглядеть примерно так:
document.body.appendChild(document.createElement("script")).src = "http://externally/hosted/javascript.js";
Тогда код JavaScript в файле, расположенный по адресу http://externally/hosted/javascript.js
, может быть кодом, который вы указали выше.