我的客户正在使用Tockify将事件小部件添加到他的网站。它使用嵌入脚本在页面上创建iframe。这是实际html文件中的html部分:
<div id="events" class="row">
<div class="col-xs-12">
<h1 id="h1">EVENTS</h1>
<div data-tockify-component="mini" data-tockify-calendar="djkayrich"></div>
<script data-cfasync="false" data-tockify-script="embed" src="events_widget.php"></script>
</div>
</div>
当我在此处加载页面时,该部分在浏览器中显示为:
我找到了一个使用PHP的其他iframe的方法,您可以将iframe src的html保存到您自己的php文件中,并使用str_replace修改嵌入式iframe文档的头部,以添加自己的样式表来设置内容的样式。这是看起来像:
<?php
$content = file_get_contents('https://podomatic.com/embed/html5/podcast/5510683?autoplay=false&square=true');
$content = str_replace('</title>','</title><base href="https://podomatic.com/embed/html5/podcast/" />', $content);
$content = str_replace('</head>','<link rel="stylesheet" href="http://www.djkayrich.com/assets/stylesheets/kayrich_podcasts_iframe.css" /></head>', $content);
echo $content;
?>
此方法仅在我实际在基本html页面上编写iframe时才有效。我试图从Tockify修改的部分让我写了一个div和脚本标记。没有实际的iframe,但是由javascript加载生成。我试图向嵌入js添加一些代码来访问iframe的头部,但是当我这样做时,它访问整个网站的头部而不是iframe内容。
<?php
$content = file_get_contents('https://public.tockify.com/browser/embed.js');
$content .= 'alert(document.head.innerHTML)';
echo $content;
?>
有没有人知道如何操纵这个iframe的头部来注入我自己的CSS?