我在写一个GreaseMonkey脚本,它修改了具有特定ID的元素的属性,但由于非传统的HTML层次结构,我在访问它时遇到了一些问题。下面是相关的HTML:使用JavaScript访问iframe和body标签内的元素
<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
,表明它找不到任何ID为bodyID
的元素。如何以跨浏览器友好的方式修改此属性?
你试过'window.frames'吗? (doc:https://developer.mozilla.org/en/DOM/window.frames) –
@drderp虽然我认为这样会工作,但与gdoron的解决方案相比,代码将包含不必要的混乱。 – Sonic42
gdoron在我发布我的帖子后发布了他的解决方案;我对此表示同意。 –