delphi EmbeddedWB проблема высоты iframe

У меня есть несколько веб-страниц в базе данных MySQL, которые я хочу показать как «слайд-шоу» в моей форме Delphi (7). Я пытаюсь использовать для этого EmbeddedWebBrowser и динамически генерирую HTML-файл, используяiframe теги - для отображения более 1 веб-страницы на данный момент.

проблема в том, что когда я загружаю этот HTML-файл в EmbeddedWB, высота составляет всего около 150 пикселей, однако в IE, FF, хром выглядит нормально.

Мой код Delphi:

embeddedwb1.LoadFromFile('mypage.html');

какие-либо предложения?

PS: веб-страницы из моей коллекции не принадлежат одному домену.

как воспроизвести: Поместите компонент Embeddedwebbrowser в форму, установите

RegisterAsBrowser

параметр для

True

, для «тихого» режима я добавил это событие в EmbeddedWebBrowser:

procedure TForm1.EmbeddedWB1ScriptError(Sender: TObject; ErrorLine, ErrorCharacter, ErrorCode, ErrorMessage, ErrorUrl: String; var ContinueScript, Showdialog: Boolean); 
    begin 
    continuescript:=true;
    showdialog:=false; 
    end;

затем я сгенерировал с помощью простого для ... цикла HTML-код, показанный выше .. Если на сайте моей страницы есть "дочерний" iframe, он не показывает правильно дочернюю высоту iframe (из другого домена) .. Если этот файл ads.html (создан этим простым приложением delphi) открывается в обычном IE (11), он правильно показывает дочерний iframe ... Я пытался изменить параметры встроенного веб-браузера (их много), но безуспешно. Извините за этот "полный рабочий пример «- мне нужно научиться писать с лучшим качеством, но 1) мой английский не очень хороший 2) я новичок здесь, должен многому научиться :) но эта проблема почти критическая, я должен ее решить до среды, когда я ее поставил Кнопка form1, форма делает следующее:

embeddedwb1.LoadFromFile ( 'mypage.html');

Пример 'mypage.html':

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=11"></head>
<body>
<iframe style="position:absolute;width:100%;height:100%" src="http://www.expresspaid.net/?x=ptcview&amp;view=bHNETmxjTXd1ck4wQWxYWmx6YWRkS0xSWGVZSklWSlJ3aWVOdzVkOXNhND0,">
</iframe>
</body>
</html>
ОБНОВИТЬ

После одной недели хулиганства я решил эту проблему! :)

решение было:

когда я сгенерировал .html файл из Delphi (записал весь код динамически в текстовый файл, а затем открыл в EmbeddedWB)
Я написал тег iframe следующим образом:

htmlpage:=htmlpage+`'<iframe width="100%" height="800" src="'+mypagestring+'"></iframe>'+#13+#10;

но это было не хорошо ..

мой новый и рабочий тег HTML:

htmlpage:=htmlpage+'<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" width="100%" height="800" src="+mypagestring+"></iframe>'+#13+#10;

Как видите, использованиеsandbox в родительском iframe мне помог показать полноценный детский iframe, а не только часть этого :)

 IanF30 мая 2016 г., 15:01
@whosrdaddy спасибо за совет, я изменил текст моего вопроса, я надеюсь, что все понятно :)
 whosrdaddy30 мая 2016 г., 13:40
Нет проблем, Ян, пожалуйстаредактировать Ваш вопрос вместо размещения кода в комментариях. Попробуйте сделать минимальный пример (также HTML), чтобы мы могли легко воспроизвести проблему ..
 IanF30 мая 2016 г., 07:56
спасибо, уже исправлено, но результат тот же. Я нашел сотни вопросов StackOverflow об этой проблеме, но ничего не помогло. Источник проблемы - внешний iframe на веб-странице, которую я пытаюсь загрузить.
 whosrdaddy30 мая 2016 г., 07:48
Ваш метатег, вероятно, не работает, потому что он находится в разделе тела, а не в разделе заголовка ...
 whosrdaddy30 мая 2016 г., 09:33
Возможно, вам нужно реализовать события OnResizexxx ... Пожалуйста, включитеполный рабочий пример?

Ответы на вопрос(0)

Ваш ответ на вопрос