Я пишу сценарий GreaseMonkey, который изменяет атрибут элемента с определенным идентификатором, но у меня возникают некоторые проблемы с его доступом из-за нетрадиционной HTML-иерархии. Вот соответствующий HTML:Доступ к элементам внутри iframe и тела Теги с JavaScript
<body>
...
<iframe id="iframeID">
<html>
...
<body id="bodyID" attribute="value">
...
</body>
...
</html>
</iframe>
...
</body>
attribute
Где это атрибут, который я пытаюсь изменить.
В первом, не понимая, что я работал с iframe
и вложенным body
тегом, я попытался это:
document.getElementById('bodyID').setAttribute("attribute","value")
В то время как это работает отлично в Firefox, Chrome говорит мне, что я не могу установить атрибут null
, что указывает на то, что он не может найти никаких элементов с идентификатором bodyID
. Как изменить этот атрибут в дружественном браузере?
Вы пробовали 'window.frames'? (doc: https://developer.mozilla.org/en/DOM/window.frames) –
@drderp Хотя я думаю, что это сработает, код будет содержать ненужный беспорядок по сравнению с решением gdoron. – Sonic42
gdoron опубликовал свое решение сразу после моего размещения; Я согласен с вами в этом. –