2015-07-13 1 views
0

Есть ли возможное обходное решение для получения html iframe, содержащего контент из другого домена, и что-то делать с JS/jQuery в зависимости от того, что он содержит? Браузеры AFAIK скрывают это содержимое из-за той же политики происхождения, поэтому я не могу просто получить к нему доступ напрямую.Доступ к содержимому iframe из другого домена

+0

я не уверен, но вы можете попытаться отправить 'Access-Control-Allow-Origin' заголовок, в котором бело- перечислите домен –

ответ

0

Если вы не хотите включать весь плагин через iFrame, в котором уже используется множество скриптов, а сайт больше похож на таблицу с результатами местного спортивного клуба или другой информацией, доступной только для чтения, вы можете использовать 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); 

Как вы не хотите импортировать весь URL, вам необходимо установить начальную и конечную точку. Чтобы дать вам основную идею, это код, который работает как-то вроде концепции вышеназванного:

<?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); 
?> 
+0

И что, если у меня нет доступа к концу, если у меня есть только этот контент iframe «как есть», и вам нужно выяснить, содержит ли он что-то, что я ищу? Все, что мне нужно, это доступ только для чтения к DOM iframe для проверки внутреннегоHTML определенного элемента – yxfxmx

+0

@yxfxmx, то есть вы не можете повлиять на то, как iframe встроен в сайт, вы можете редактировать файл javascript только? Или вы не можете редактировать содержимое самого iframe (которое будет внедрено через, как сказано, iframe)? –