是否有任何可能的解决方法来获取包含来自另一个域的内容的iframe的html并根据它包含的内容对JS / jQuery执行某些操作?由于相同的原始策略,AFAIK浏览器会隐藏该内容,因此我不能直接访问它。
答案 0 :(得分:0)
如果您不希望通过iFrame包含整个插件,iFrame已经使用了大量脚本,并且该网站更像是一个包含当地体育俱乐部或其他人的结果的表格#34;只读# 34;信息,您可以使用 php 和file_get_contents()
来导入iframe 。现在,您可以对其内容进行样式化并通过jQuery进行定位。
例如,您有以下标记:
<html>
<!-- Some Head and Body parts, like navigation, sidebar, etc. -->
<div id="results">
<!-- Lots of results -->
</div>
</html>
您可以定位id="result
以确定要导入的部分的开头。
所以我们定义你的目标:
$host = 'http://sportclub.de/results.html';
并导入他:
$filestring = file_get_contents($host);
由于您不想导入整个网址,因此需要设置起点和终点。为了给你一个基本的想法,这是一个代码,它的工作方式与上面提到的概念类似:
<?php
$host = 'http://sportclub.de/results.html';
$filestring = file_get_contents($host);
$startpos = 0; //erstes Zeichen
while($pos = strpos($filestring, "<div id=\"results\"", $startpos))
{
$string = substr($filestring, $pos, strpos($filestring, "</div>", $pos + 1) - $pos);
echo $string."</div>";
$startpos = $pos + 1;
}
$string = preg_replace("/(^¦\s)(http:\/\/)?(www\.)?[\.0-9a-zA-Z\-_~]+\.(com¦net¦org¦info¦name¦biz¦.+\.\w\w)((\/)?[0-9a-zA-Z\.\-_~#]+)?\b/ie","",$string);
?>