Отправить «iframe.contents ()» в PHP-скрипт через Ajax есть идеи?

#php #javascript #html #ajax #json

#php #javascript #HTML #ajax #json

Вопрос:

В моем коде у меня есть iFrame, который загружает динамический контент, он похож на веб-страницу (B.html ) внутри страницы(A.php ). в «A.php » пользователь может редактировать встроенное «B.html » как только процесс редактирования будет завершен. В моем представлении я отправляю информацию о iframes на другую страницу (script.php ). Я перепробовал все, но содержимое не появляется в «script.php «.

В двух словах, я хочу перенести свой большой html-текст со всем материалом на PHP через AJAX. Я понятия не имею, как это сделать … мой код будет примерно таким, как показано ниже :-

Код для «A.php » inscript: «myframe» — это iframe, который содержит большой фрагмент HTML.

 sendString = $("#myframe").contents();//Tried everything here[JSON as well] 
 $.ajax({
    url: "script.php",
    type: "POST",       
    data: sendingString,    
    cache: false,
    success: function (html) { 

         return html;
    } 
});
  

Любая помощь будет оценена.

С уважением, Амджад

Ответ №1:

$("#myframe").contents() вы получите его узлы в виде объекта jQuery. Попробуйте $("#myframe").html() вместо этого получить содержимое в виде строки.

РЕДАКТИРОВАТЬ: О, и это также поможет, если вы исправите имена своих переменных. Измените data: sendingString на data: sendString .

Комментарии:

1. Я не в том месте, где я могу протестировать прямо сейчас, но я не думаю, что вы можете получить содержимое iFrame с помощью JavaScript любого типа. Браузеры специально не допускают этого, чтобы предотвратить различные взломы.

2. Вы частично правы, но содержимое iFrame из того же источника может быть доступно. Это то, что делают редакторы javascript WYSIWYG. Дополнительная информация: en.wikipedia.org/wiki/Same_origin_policy

3. Ах да. Я предположил другое происхождение, потому что, если оно того же происхождения, нет причин использовать iframes, ИМХО. Он мог бы просто включить файлы (или что-то подобное) и обернуть все это тегом div с идентификатором. С этим было бы намного проще играть, чем с shudder iframes 😉

4. Наконец, я отправил данные «HTML» отдельно вместе с данными формы, и это помогло значительно повысить скорость