facebook、twitterなどからsrcとiframe(クロスドメイン)を持っています。iframeの高さを取得する必要がありますが、問題があります: "プロパティ 'ドキュメント'にアクセスする権限が拒否されました。これを解決するために私を助けてください。どうもありがとう!iframeのクロスドメインの高さを取得する方法
6
A
答えて
6
カップルの問題。まず、iframe
の高さは、あなたが望むものではない可能性があります。私は、あなたがコントロールするページのHTMLコードに明示的に設定されており、どのJavaScriptメソッドを介しても簡単にアクセス可能で変更可能であることを意味します。それがあなたの後ろにあるのはページの高さですの内側に iframeです。そうであれば、少なくともFacebook/Twitterのような外部サービスではできないという簡単な答えはありません。
の両方のJavaScriptのに通信経路が組み込まれていない限り、セキュリティ上の理由から、親から子へのメッセージは簡単に渡すことができます。現代のブラウザでこれを処理するためのプロトコルはpostMessage
です。 https://developer.mozilla.org/en/DOM/window.postMessage。しかし、このケースでは、通信しているドキュメントが、受信したpostMessageを処理するようにセットアップされていない限り、この場合はまったく役に立たないです。私の知る限りでは、Twitter/Facebookは頻繁にそうではありません。
親文書が異なるドメインの子どもと自由に通信できる場合、 JavaScriptはログインしているすべてのサイトで一連のコマンドを効果的に実行できます。そのセキュリティの意味は恐ろしく、ありがたいことには不可能です。
1
クロスドメインのiframeの高さを調べるにはjavascriptのオプションはありませんが、サーバー側のプログラミングの助けを借りてこれを行うことができます。この例ではPHPを使用しました
<?php
$output = file_get_contents('http://yourdomain.com');
?>
<div id='iframediv'>
<?php echo $output; ?>
</div>
<iframe style='display:none' id='iframe' src="http://yourdomain.com" width="100%" marginwidth="0" height="100%" marginheight="0" align="top" scrolling="auto" frameborder="0" hspace="0" vspace="0"> </iframe>
<script>
if(window.attachEvent) {
window.attachEvent('onload', iframeResizer);
} else {
if(window.onload) {
var curronload = window.onload;
var newonload = function(evt) {
curronload(evt);
iframeResizer(evt);
};
window.onload = newonload;
} else {
window.onload = iframeResizer;
}
}
function iframeResizer(){
var result = document.getElementById("iframediv").offsetHeight;
document.getElementById("iframe").style.height = result;
document.getElementById("iframediv").style.display = 'none';
document.getElementById("iframe").style.display = 'inline';
}
</script>
関連する問題
- 1. クロスドメインiframeのフィードバックを取得
- 2. クロスドメインURLを取得するiFrameの代替方法
- 3. iframeのクロスドメインCSSを取得する
- 4. PDFドキュメントの高さをiframeで取得する方法
- 5. iframeの高さを取得する
- 6. iframeの現在のsrc URLをクロスドメインで取得する
- 7. jquery.ba-postmessageを使用したiframeの動的高さのクロスドメイン
- 8. iframeまたは外部divからスクロールの高さを取得する方法
- 9. iframeでコンテンツの高さを取得iframe resizerを使用
- 10. iframeのクロスドメイン
- 11. iframeのクロスドメインの問題を解決する方法
- 12. ウェブブラウザのコントロールでIframe内のウェブページのクロスドメインを取得する方法はありますか?
- 13. クロスドメインiframeファイルのアップロードjsonレスポンスを処理する方法は?
- 14. クロスドメインURLでiframeのサイズを変更する方法
- 15. 小さなmce 3.4.3.1のiframeでscrollTopを取得する方法
- 16. jqueryを使用してiframeからブラウザビューポートの高さを取得
- 17. JavaFX +グラフプロットセクションの長さと高さを取得する方法は?
- 18. クロスドメインでのiframe内の要素のCSS属性を取得します
- 19. コンテンツのIFrameの高さを調整する方法
- 20. "onBindViewHolder"のrecyclerviewのアイテムの高さを取得する方法
- 21. クロスドメインiframeコンソールのログをブロックする
- 22. クロスドメインjqueryを取得
- 23. jqueryでイメージの高さの幅を取得する方法
- 24. wpf usercontrolのデザインタイムの高さ/幅を取得する方法
- 25. デフォルトのカーソルドロワブルの高さを取得する方法は?
- 26. スウィフトUIAlertControllerのタイトルの高さを取得する方法
- 27. Wordのテーブル行の高さを取得する方法
- 28. androidのWebviewの幅と高さを取得する方法
- 29. スパンの行の高さを取得する方法は?
- 30. JavaScriptの最小スクロールサムの高さを取得する方法