Изменить DOM текущей страницы из приложения XUL - PullRequest
0 голосов
/ 14 января 2020

Я не знаю, можно ли задавать вопросы по устаревшей теме (XUL), но, поскольку я увидел языковой ярлык среди доступных, я интуитивно понимаю, что это так. Я пытаюсь изменить DOM текущей страницы из Javascript, я показываю свой код, просто, приложение состоит только из кнопки, расположенной в строке состояния, и нажатие на нее вызывает функцию, которую вы можете видеть там.

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="chrome://app/skin/overlay.css" type="text/css"?>
<!DOCTYPE overlay SYSTEM "chrome://app/locale/hacksearch.dtd">
<overlay id="app-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <script type="text/javascript">
      <![CDATA[
        function go() {
            var content = document.getElementById("idfromanelement").innerHTML;
            console.log(content)
        }
      ]]>
    </script>

    <toolbarpalette id="BrowserToolbarPalette">
        <toolbarbutton image="chrome://app/content/logo.png" oncommand="go()">
        </toolbarbutton>
    </toolbarpalette>
</overlay>

Таким образом, кроме того факта, что console.log выбрасывает меня null , это отображается из консоли браузера , но не из веб-консоли . Я интуитивно понимаю, что он ищет в каком-то другом файле, но не в исходном коде текущей страницы, я читал там, что это может быть чтение overlay.xul , но больше ничего, они будут знать, что эти форумы мертвы. Я пробовал следующее:

function go() {
    var serializer = new XMLSerializer();
    var source = serializer.serializeToString(content.document);
    console.log(source)
}

Таким образом, он корректно выбрасывает весь исходный код , но он не может быть изменен, потому что все является строкой.


EDIT 1

Я использую это расширение для браузера, использую Palemoon 28.8.0 32 Bits. Этот браузер является Firefox fork.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...