Я не знаю, можно ли задавать вопросы по устаревшей теме (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.