PDFファイル付きのiframeがあります:
<iframe src="pdf/sample.pdf"></iframe>
スクロールバーなしで、iframeがpdfファイルと同じ高さになるように設定するにはどうすればよいですか?
スクロールバーなしでPDFを表示する場合は、URLでパラメーターを渡すことでこれを行うことができます。アドビはこれをここに文書化しています: http ://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_open_parameters.pdf
これを試して:
<iframe src="pdf/sample.pdf#view=fit"></iframe>
PDFに合わせてiframeの高さを正確に設定しているわけではありませんが、ブラウザに依存せず、JavaScriptを必要としないため、おそらく最も堅牢なソリューションです。
ダニエルのコメントの後の更新です。
次のようにテストHTMLを作成しました。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
</head>
<body>
<iframe src="http://partners.adobe.com/public/developer/en/pdf/PDFReference.pdf#view=fit&toolbar=0&navpanes=0"
width="300px" height="400px"></iframe>
</body>
</html>
Chromeでの外観は次のとおりです。
これは予想通りです。
ページ用のスペースがあるように、ツールバーとナビゲーションペインもオフにしたことに注意してください。
Facebookの投稿https://www.facebook.com/antimatterstudios/posts/10151007211674364で説明した方法を使用して簡単に行うことができます
別のWebサイトのページをホストしているため、高さを自動的に設定するIFrameがありますか。
残念ながら、IFrameは読み込んでいるコンテンツの高さを取得できません。高さを指定しない限り、デフォルトの高さが表示されるか、高さがまったく表示されません。これは迷惑です。
私はあなたのための解決策を持っています、それは最近の標準的なサポートブラウザでのみ動作しますが、IE8でも動作するので、あなたの約99%にとってそれは完璧です。
唯一の問題は、iframe内にJavaScriptを挿入する必要があることです。これは、読み込んでいるコンテンツが自分のものである場合は簡単です。読み込んでいるコンテンツを開いて、JavaScriptをコンテンツに入れるだけです。
あなたのウェブサイトでは、このような「IFrameからメッセージを受信する」ことができるJavaScriptが必要です。
jQuery(document).ready(function(){
jQuery(window).bind("message",function(e){
data = e.data || e.originalEvent.data;
jQuery("iframe.newsletter_view").height(data.height);
});
});
IFrameコンテンツで、これを一番下に追加します。JavaScriptがタグ内にない場合でも、PHPなどを使用して「$template。$javascript」のようなことを実行しても問題ありません。
<script type="text/javascript" src="jquery-1.7.1-min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
parent.postMessage({
height:$(document.body).height()+50+"px"
},"*");
});
</script>
明らかに私はjqueryを使用しています、あなたはそうする必要はありません、それはただ簡単で、おそらくあなたはそれを使用しているので、あなた自身の手間を省いてください。
これを行うと、iframeが読み込まれると、親ウィンドウに信号が返され、コンテンツの長さに基づいてiframeのサイズが変更されます:)
ささいなことを変える方法を理解できると確信していますが、それが私が使用している方法です
私の解決策
$(document).ready(function(){
var width = $(window).width();
var height = $(window).height();
$('#objFile').attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');
});
<object data="myFile.pdf" type="application/pdf" id="objFile"></object>