2012-02-14 19 views
1

私はHTMLページに呼び出される外部のJavaScriptを持っています。次のように私は問題を抱えていたJavaScriptの行は、次のとおりです。名声は何のスクロールバーが存在しないので、高さは、その内容のものに調整されて呼び出されたとき内容に基づいてJavaScriptでiframeの高さを設定する

document.getElementById('lsb').innerHTML = '<iframe src="http://domain.com/feeds/" id="frame" frameBorder="0" style="border: none; width: 100%; min-width: 100%;" onLoad="calcHeight();" ></iframe>'; 

function calcHeight(){ 
    var the_height= document.getElementById('frame').contentWindow.document.body.scrollHeight; 
    document.getElementById('frame').height=the_height; 
} 

は今興味深い部分は、このコードが動作するということです。しかし、iframeのsrc値がjavascriptファイルおよびhtmlに対してローカルではない場合、それは機能しません。高さ値は設定されません。

誰もがこれである理由を知っている、または別のスクリプトを持っていますか?

事前のおかげで、幸せなバレンタインの日:)

答えて

1

これは、ほとんどのブラウザは、あなたが操作する/別のドメインからコンテンツにアクセスすることを許可しません、クロスドメインの問題です。これはブラウザのセキュリティ上の制限です。

+0

この例では、外部ファイルの内容は編集されていません。私は作成しているiframeを編集しようとしているだけなので、その高さはその中に含まれているコンテンツの高さと同じです。 – Paul

+0

アクセスと操作は両方とも許可されていません。これを回避するには、リモートソースからコンテンツをダウンロードしてレンダリングするプロキシスクリプト(同じドメインで動作する)を作成する必要があります。 – jerjer

+0

私はプロキシスクリプトをどこから始めるべきか分からず、iframeを取得してスクロールバーなしですべてのコンテンツを表示できるようにするもう1つの方法はありますか? – Paul

関連する問題