Создать div в iframe - PullRequest
       2

Создать div в iframe

0 голосов
/ 18 августа 2010

Мне не удалось найти решение следующей проблемы: я хочу отобразить любой веб-сайт в iframe и добавить элементы (div) в этот iframe. Из-за предотвращения кросс-скриптинга в браузере это кажется невозможным.

Есть ли способ сделать это?

Ответы [ 4 ]

1 голос
/ 18 августа 2010

Какова ваша цель?

Если вы хотите переформатировать содержимое или запустить сценарии на их странице, вам, вероятно, потребуется прокси-сервер и скопировать html (как предложено meder)

Если вы просто хотите наложить или «вставить» что-то на их странице, вы можете попробовать разместить div на своей странице и установить его положение поверх iframe, где вы хотите.

Я должен был сделать это, чтобы прикрепить iframes поверх файлов SWF.

1 голос
/ 18 августа 2010

Если вы на самом деле не размещаете домен в iframe, нет.Лучшее, что вы можете сделать, - это иметь прокси-страницу на стороне сервера, которая копирует HTML и вставляет div.

0 голосов
/ 18 августа 2010

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

Если отложить тему безопасности, естьЕще одна проблема с вашим кодом: вам нужно создать элемент в документе iframe, а не в текущем документе, и снова добавить его в документ iframe, а не сам объект iframe:

function addDiv() {
    var doc = myFrame.contentDocument,
        newdiv = doc.createElement("div");
    newdiv.innerHTML = "foo";
    doc.appendChild(newdiv);
}
0 голосов
/ 18 августа 2010

Правила междоменного скриптинга явно предотвращают это. Даже если вы найдете решение сейчас, я буду обеспокоен этим в будущем, скорее всего, это взлом. Если вы не являетесь владельцем / хостом домена в вашем iFrame, это запрещено.

Возможно использование прокси или фасадного приложения, которое манипулирует HTML и обслуживает его, но я не могу себе представить, что это легко.

Вполне вероятно, что это бесполезно для вас, но единственный известный мне санкционированный метод - использовать HTA, поэтому, если ваше приложение работает в доверенной среде (например, в корпоративной сети, в киоске и т. Д.), Вы можете использовать подход HTA: http://msdn.microsoft.com/en-us/library/ms536496%28VS.85%29.aspx

Лично HTA дают мне мурашки по коже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...