问题:
如何更改跨域 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 URL:
通过使用这种代理技术,您可以有效地改变跨域 iFrame 内容的样式,而不会违反跨域安全限制。
以上是如何在不直接访问的情况下设置跨域 iFrame 内容的样式?的详细内容。更多信息请关注PHP中文网其他相关文章!