2013-03-18 3 views
2

Я пытался настроить размер iFrame на основе его содержимого, используя информацию от here. Демоверсия находится here.Как изменить размер iFrame через jQuery?

Я использую следующие:

$("#IframeId").load(function() { 
    $(this).height($(this).contents().find("body").height()); 
}); 

ли .find("body") проверка «тела» в разделе заголовка внутреннего содержимого Iframe? Я вижу это на странице размещения.

Я также добавил следующее выше код:

alert($(this).height($(this).contents().find("body").height())); 

Я не вижу тревогу.

+0

Вы используете подход к вопросу связанного вопроса, а не ответ, открывающий этот вопрос четко сказал, что его подход не работает. почему вы не копируете одно из решений, предложенных в ответах там? –

+0

Я обновил вопрос. – 4thSpace

+0

Посмотрите ответы на этот вопрос: http://stackoverflow.com/questions/701339/resizing-iframe-to-fit-its-content/4585053 – Ferruccio

ответ

1

Я думаю, вам нужно попытаться найти высоту определенного элемента в источнике IFrame, а не сам тег html, так как он не имеет указанной высоты. Вот рабочий пример:

$("#IframeId").load(function() { 
    $(this).height($(this).contents().find("#box").height()); //box can be changed to the id of the element you want 
}); 

Если у вас есть контейнер DIV, который имеет ширину вы хотите, чтобы Iframe быть, вы можете использовать свой идентификатор, а поле. (Примечание: поле было идентификатором основного элемента в this Пример JsFiddle.)

+0

Спасибо. Я не вижу, как срабатывает тревога внутри загрузки iframe. Он захватывает HTML-элемент с атрибутом runat = server, который во время выполнения превращается в некоторый искаженный идентификатор. Но $ ("# IframeId") должен работать для этого права? – 4thSpace

+0

Я думаю, что мой jQuery для получения ссылки на управление сервером неверен. Я помещал это в предупреждение: $ ("# IframeId"). Attr ('id'). Это дало неопределенное. Когда я заменяю #IframeId искаженным идентификатором asp.net, я вижу идентификатор в предупреждении. – 4thSpace

+0

Что делает '$ (" # iframeid "). Attr ('id')' делает, это запрос элемента, который имеет id "iframeid". Поскольку у вас, скорее всего, нет элемента с id «iframeid», этот код возвращается неопределенным. если вы используете Asp.NET 4.0, вы можете добавить 'ClientIDMode =" Static "' к вашим атрибутам на вашем iframe. – Jsterman

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