我在寫一個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在我發佈我的帖子後發佈了他的解決方案;我對此表示同意。 –