要更改的内容位于iframe中。我建议你只是将样式表注入iframe直接,但不幸的是你想要的内容是在不同的域。由于跨域安全策略,您将无法直接修改iframe的内容。
有两种方法可以解决这个问题。您可以使用PHP应用程序获取您需要的内容,然后您可以以任何您想要的方式对其进行过滤并进行更改。这将取代iframe,而只是在页面上显示您需要的内容。另一种选择是使用更简单的PHP应用程序来获取内容,但根本不会修改它。然后你将你的iframe指向这个PHP应用程序,它将以与现在相同的方式显示,但它将来自同一个域。然后你可以用Javascript注入一个样式表,并以任何你想要的方式。
“重要!”如果你使用我提到的第二种方法,可能需要CSS覆盖,但它不是问题的根本原因。如果你想阅读更多关于如何使用重要!,我建议this article。
下面我已经实现了我描述的第一种方法的一个例子。这将下载请求的页面,然后注入一组自定义样式。
<?php
$url = 'http://lema.rae.es/drae/srv/search?id=IwxflJmT9DXX2DMkYs8Z';
$css = <<<EOT
<style type="text/css">
body
{
background: #eeeeee;
}
.a
{
color: green;
}
.f
{
font-size: 200%;
}
.o
{
font-size: 80%;
}
img
{
opacity: .5;
}
img:hover
{
opacity: 1;
}
</style>
EOT;
$data = file_get_contents($url);
$data = str_replace('</head>', $css.'</head>', $data);
echo $data;
?>
这是一个'iframe'!您应该查找(并在此处询问)如何更改iframe的CSS。 – inhan
为什么在有api时使用iframe。 (http://rae-quel.appspot.com/json?query=hola) – 2012-11-15 03:37:49
我该怎么实现api @Dagon,我求你赦免 – j1nma