2012-07-04 2 views
1

Я знаю, что в нем много тем, но никто из них не работал. Мне нужно просто получить iframe-контент (а не исходный код).Не удается получить содержимое iframe

У меня есть форма, которая выводит некоторые параметры на другой сервер, и я настраиваю его на iframe (который лежит на той же странице). Так я получаю код сервера Быстродействие storred в моем IFRAME без обновления страницы:

<form name='vin_form' id='file_upload_form' action='*****' method='post'> 
    <input name='name1' value='value1'> 
    <input name='name2' value='value2' type='hidden'> 
    <input name='name3' value='value3' type='hidden'> 
    <div onclick=\"document.getElementById('file_upload_form').target = 'upload_target'; document.vin_form.submit();\">Send form</div> 
</form>"; 

<iframe id='upload_target' name='upload_target'></iframe> 

Чтобы получить содержание IFrame я использовал все, но ничего не получалось:

jQuery('#upload_target').load(function() 
    { 
      alert(jQuery('#upload_target').contents().find('body').html()); 

      var myIFrame = document.getElementById('upload_target'); 
      var content = myIFrame.contentWindow.document.body.innerHTML; 
      alert(content); 

      alert(window.frames.upload_target.document.body); 
    } 
); 

Я прочитал о «же политику происхождения», но Я думаю, это не должно быть запрещено в моем случае, потому что я могу получить доступ к этой странице по URL-адресу и прочитать весь код, так почему я не могу сделать это программно?

P.S .: Есть ли другие способы получить код ответа на обратную связь с другого сервера? (PHP локон не работает из-за какой-то рамки сайта обороны)

+3

Ну, обе страницы имеет одинаковое происхождение? Вы говорите, что думаете ... вы должны проверить, чтобы убедиться. –

+3

Я согласен с Šime, если вы можете получить к нему доступ по URL-адресу, то вы на этом сайте, и это круто; если вы загружаете его из iframe, то вы не на том же самом происхождении, если только ваш сайт и цель iframe находятся в одном домене. Это может помочь, если вы сможете уточнить, чего вы на самом деле надеетесь достичь, и почему вы так делаете. –

+3

Получаете ли вы какие-либо ошибки в javascript-консоли браузера? –

ответ

1

* обновление - попробуйте следующее:

var t = document.getElementById("upload_target"); 
var y =(t.contentWindow || t.contentDocument); 
alert(y.document.body.innerHTML) 
+0

Он фактически привязывается к событию onload iframe (jquery имеет два метода '.load()'). Кроме того, метод загрузки ajax удаляет «тело» и «голова», и эти вещи - если он использовал это, я имею в виду. – nbrooks

+0

@nbrooks Я знаю, что они два метода загрузки, я удалю часть загрузки ответа. – undefined

+0

Нет, это не сработает :(Он обрабатывает ошибку: «Permission denied to access property» document » –

Смежные вопросы