Увеличьте ширину Fancybox, чтобы соответствовать <embed>PDF - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть Fancybox (2), содержимое которого <embed src='some_pdf.pdf'/>, т.е.

var embed = $("<embed></embed>"),
    pdf_url = "http://mysite.science.uottawa.ca/rsmith43/Zombies.pdf";

embed.attr('src', pdf_url);

$.fancybox.open(embed);

Вот оно на jsFiddle .

Я бы хотел, чтобы Fancybox автоматически изменял ширину по размеру PDF (который, я должен отметить, может варьироваться, поскольку PDF содержит альбомную или книжную ориентацию), и примерно на 90% высоты окна. 1011 *

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

embed.attr('width', '900');
embed.attr('height', parseInt($(window).height() * 0.9, 10));

Буду благодарен за любые мысли о том, как можно изменить размер Fancybox до размера PDF, включенного в <embed>.

Я использую Chrome 15, и в идеале мне бы хотелось, чтобы решение работало в последних версиях Chrome, Safari и Firefox.

Спасибо, что прочитали.

1 Ответ

1 голос
/ 08 декабря 2011

Когда Fancybox не может рассчитать размер поступающего контента (скорее всего, это произойдет с элементами объекта), тогда он использует свои minWidth и minHeight настройки по умолчанию.

Попробуйте передать правильное значение <embed> помечайте такие атрибуты, как:

var embed = $("<embed></embed>"),
pdf_url = "http://mysite.science.uottawa.ca/rsmith43/Zombies.pdf";

embed.attr('src', pdf_url);
embed.attr('width', '100%');
embed.attr('height', '100%');
embed.attr('type', 'application/pdf');

и указывайте fancybox не использовать его настройки autoSize, поэтому он будет принимать значения из атрибутов <embed> width и height, например:

$.fancybox.open(embed,{
autoSize: false
});

Это сделает свое дело и изменит размер средства просмотра PDF в окне просмотра.

ПРИМЕЧАНИЕ : если вы используете HTML5 <!DOCTYPE html>, я бы порекомендовал вам установить высоту только на 99%, например:

embed.attr('height', '99%');

, чтобы избежать двойнойвертикальная полоса прокрутки в вашей программе просмотра PDF.Это потому, что HTML5 инициализирует поля.

...