父頁面 → iframe 子頁面 → iframe 孫頁面。需在父頁面 JS 中修改孫頁面元素樣式。
**所有頁面必須同源** (協議、域名、埠相同),否則瀏覽器阻止跨框架訪問 DOM,拋出安全錯誤。
// 父頁面
var childFrame = document.getElementById('childIframe'); // 或 window.frames[0]
var grandChildFrame = childFrame.contentWindow.document.getElementById('grandChildIframe');
var targetElement = grandChildFrame.contentWindow.document.getElementById('targetId');
targetElement.style.color = 'red';
<!-- 父頁面 -->
<iframe id="child" src="child.html"></iframe>
<script>
function modifyGrandChild() {
try {
var childWin = document.getElementById('child').contentWindow;
var grandChildWin = childWin.document.getElementById('grandChild').contentWindow;
var el = grandChildWin.document.getElementById('target');
if (el) el.style.backgroundColor = 'yellow';
} catch (e) {
console.error('跨域或框架未就緒:', e);
}
}
// 確保框架加載完成
window.addEventListener('load', modifyGrandChild);
</script>