2017-01-13 9 views
0

お客様が独自のHTML Webページをホストし、これらのページのコンテンツの一部を埋め込みiframe要素として提供しています。 (つまり、コンテンツとコンテンツのドメインが異なることを意味します)。通常、iframe要素を含むdiv要素を提供します。 (我々は唯一の私たちのiframeコンテンツの上に自分のWebページのコンテンツを制御すること、持っていないことに注意してください。)iframeの親コンテナの幅をモバイルブラウザのiframe内で確認する

iframeが外側divの寸法である必要があり、それは埋めることができる最大サイズを決定するJavaScriptコードが含まれています。この最大幅は、iframeコンテンツ内のスクロール要素を制御(表示/非表示)するために使用されます。

問題は、一部のモバイルブラウザに、iframeの内容が適切に親<div>のサイズ/境界に制限(クリッピング)されていないということです。換言すれば、iframeの寸法は、その親のdivよりも大きい(より広い)。 (これは、デスクトップブラウザ上の問題ではありません。)

だから質問はです:iframeコードは、その親要素(特にクロスドメイン)の真の適切なサイズを決定するにはどうすればよいですか?私が得ることのできる最高のものは、iframeとその子要素の見かけのサイズです。

divが適切 div境界を越えて延びる/クリップIFRAMEコンテンツ隠し親に overflow:hidden追加

が、iframeコードがまだその寸法(幅)が実際に何であるかを判断することができません。 (繰り返しますが、これは明らかにデスクトップブラウザ上の問題ではありません。)

注:同様の質問(例えば、Detect the width of an iframe from within the iframe)はiframe内からiframe自体の寸法へのアクセスの問題に対処します。 iframeの親コンテナのサイズにアクセスする必要があります。

SOLUTION

私は、独自のdiv要素内iframe要素を配置し、その含む要素の幅にアクセスすることになりました。 (iframeがその親に直接アクセスする方法はありません)

答えて

0

あなたのiframeページは他のページと通話する必要があります。 HereはGithubの上の私の例のレポで、このI'amが話して何です...

編集:

function windowWidth(){ 
    return document.getElementById('content').clientWidth; 
} 

インラインフレームページ:

すべてのページをアウトソーシング

window.onload = function(){ setInterval(function(){ var iframeWidth = document.getElementById('iframe').contentWindow.windowWidth(); document.getElementById('iframe').style.width = iframeWidth + "px"; }, 10); } 
+0

iframeの仕組みがまだわかりませんその親要素の幅にアクセスします(特にドメイン間)。 –

+0

あなたはそれを行うべきです:あなたのiframeページは、その幅(私の例ではwindowWidth();の関数)を言い、iframeWidthの変数からその幅を知る必要があります。 –

関連する問題