2009-11-04 4 views
0

Я пытаюсь отобразить iframe, который можно указать на разные URL-адреса, и хотел бы динамически изменять его размер, чтобы отображать его содержимое без полосы прокрутки.Минимальный размер iframe, чтобы избежать полосы прокрутки?

Как найти эти размеры?

+0

Межсайтовый сайт не является проблемой: весь HTML-сайт такой же. Я просто стараюсь избегать корректировки для каждого или предугадать, надеясь, что это уже доступно. – HappyFunBall

+0

Лучшее Я до сих пор: jQuery ("body"). Height() jQuery ("body"). Width() – HappyFunBall

+0

Это именно то, что вам нужно. – mahemoff

ответ

0

Я не думаю, что это возможно. Многие сайты изменяют свой контент в соответствии с их контейнером, поэтому изменение размера контейнера в соответствии с содержимым в лучшем случае будет беспорядочным. Кроме того, из-за политики с одним исходным кодом JavaScript не сможет проверять страницу, загруженную в iframe, если она поступает с другого сайта, поэтому я не думаю, что вы даже сможете сказать, нужно ли ей прокручивать или нет.

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

0

Вы можете сделать это только общением между iframe и вашим сайтом. Это, например, технология гаджетов OpenSocial. Это возможно только в том случае, если и iframe и родительский элемент находятся под контролем, и в этом случае вы можете использовать HTML5 cross-window messaging и fall back to other cross-domain hacks, если браузер не может с этим справиться.

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

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