問題:
如何更改跨域iFrame 內容的樣式來自不同域的iFrame,假設您無法存取iFrame 的來源域來放置任何檔案或樣式表?
答案:
由於跨域限制,使用 JavaScript 或其他傳統方法直接修改 iFrame 內容的樣式是不可能的。
解決方案:
唯一可行的方法是代理 iFrame透過您自己的伺服器取得內容。以下是實現此目的的方法:
建立代理程式腳本:
修改 HTML 內容:
傳回修改後的內容:
代理腳本範例:
<?php // Fetch content from remote domain $content = file_get_contents('https://crossdomain.example.com'); // Parse HTML and modify style $doc = new DOMDocument(); $doc->loadHTML($content); $styles = $doc->getElementsByTagName('style'); $styles[0]->textContent .= "body { background-color: black; color: white; }"; // Return modified content echo $doc->saveHTML(); ?>
以上是如何在不直接存取的情況下設定跨域 iFrame 內容的樣式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!