Встраивание динамически изменяемой веб-страницы с использованием JavaScript - PullRequest
2 голосов
/ 17 августа 2011

Хорошо, сначала небольшая справочная информация: я пытаюсь встроить веб-страницу в другую.Подстраница представляет собой небольшое веб-приложение, написанное на javascript и html, которое занимает несколько экранов ввода (переключатели, текстовые поля и т. Д.) И дает экран с результатами в конце.Каждый из этих экранов может иметь разный размер.

Существует два метода, которые я пытался использовать для встраивания:

1) Скопируйте все html и javascript из подстраницы вглавной страницы и вставьте ее в div / table / what.

2) Сохраните подстраницу в своем собственном файле и вставьте ее, используя embed / object / iframe.

Используя первыйметод, страница ведет себя как следует;единственная реальная проблема (помимо того, что это грязное решение) состоит в том, что вложенная страница, которую я встраиваю, фактически создается внешним приложением, и очень часто страница заменяется более новой версией.Это более или менее исключает использование первого метода в качестве долгосрочного решения.

Теперь у второго метода есть свои проблемы.Поскольку высота встроенной страницы javascript изменяется, ее размер должен меняться в зависимости от размера.Я могу изменить размер, используя любое из приведенных здесь решений , однако они не обновляют размер кадра по мере прохождения пользователем каждого экрана.

Ближайшее решение IДо сих пор удалось придумать, использует обработчик document.onclick для перехвата любого нажатия, которое может привести к появлению следующего экрана подстраницы.Обработчик делает паузу на очень короткое время (чтобы открыть следующий экран), а затем вызывает необходимую функцию изменения размера.Однако это похоже на очень хакерское решение, и есть также немного заметная задержка, когда полоса прокрутки появляется на боковой стороне фрейма, когда она еще не развернута, чтобы соответствовать новому контенту.Я думаю, что должен быть лучший способ сделать это.

1 Ответ

2 голосов
/ 17 августа 2011

Если файл находится на том же сервере / домене, вы можете просто загрузить его с помощью jQuery.Вот некоторый код jQuery:

<script type="text/javascript">
$(document).ready(function() {
$('#id-of-div').load('/path/to/page.html');
});
</script>

Просто замените id-of-div на id div, в который вы хотите загрузить страницу, и замените /path/to/page.html на фактический URL-адрес страницы.(вам не нужен домен этого домена, просто путь к нему)

Надеюсь, это поможет.

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

...