2015-04-23 141 views
1

我設法動態設置包含pdf的嵌入元素的高度。使用jQuery來設置新的高度。但我沒有感覺我已經使用了最好的'解決方案'。動態設置嵌入pdf的高度

舊高度=身高在HTML設置
新高度=新計算出的高度設置與jQuery

我遇到了一個問題:我的嵌入型元件的200像素的舊的高度。當我試圖用新的高度覆蓋它時,嵌入元素確實改變爲新的高度,但PDF高度保持在200px。 但是,當我將舊高度設置得高得多,5000px時,pdf對新高度的反應正確。
短版:
新嵌入高度>老嵌入高度= PDF高度停留在舊的嵌入高度
新嵌入高度<老嵌入高度= PDF高度是正確的

我當前的代碼如下所示:

<object> 
    <embed id="embed_pdf" type='application/pdf' src="/files/<?=$var['filename']?>" data-width="<?=$var['image_width']?>" data-height="<?=$var['image_height']?>" style="max-width:<?=$var['image_width']?>px;" width="100%" height="<?=$var['image_height']?>"/> 
    <p>Error message</p> 
</object> 

而我的「腳本」代碼:

$(document).ready(function() { 
    var pdf_width = $("#embed_pdf").attr("data-width"); 
    var pdf_height = $("#embed_pdf").attr("data-height"); 
    var object_width = $("#embed_pdf").width(); 
    var object_height = (object_width/pdf_width)*pdf_height; 
    $("#embed_pdf").attr('height', object_height); 
}); 

目前,它正在因爲舊的高度我總是等於或高於新的高度。但這是一個已知或正常的問題?或者我做錯了什麼?什麼可能是更好的解決方案?

回答

0

我沒有問題調整IE 11中嵌入的PDF插件的大小,您正在使用哪種瀏覽器,並且您使用的是標準Adobe PDF插件?

$(window).resize(function(){ 
    //$('embed').attr('height', 200); 
    height = $(window).height() - 75; 
    //alert(height); 
    $('embed').attr('height', height); 
}); 

我能夠做到類似於上面的文件準備和窗口調整大小。但是,我確實將所有項目設置爲100%寬度,例如html,body和所有容納我的嵌入的div容器。

如果您嘗試採用文檔或元素高度等,您可能必須首先縮小您的PDF,但窗口高度應該沒問題。

+0

謝謝您的回覆!我正在使用Chrome版本42.爲什麼窗口高度的'-75'? – Brieneke

+0

這可能只是滾動條等的空間,或者如果您還有標題欄,則可以防止它滾動。這通常是我這樣做的原因。 – Greg