クロスドメインの子 iframe を読み込んで、特定のセクションまでスクロールすることはできますか?
たとえば、スタック オーバーフローに関する質問を参照したいとします。JavaScript を使用して、質問のあるページの特定の部分までスクロールし、ハイライトなどをオーバーレイします。
私のハックは、iframe を非常に高い高さのようにロードし、位置を移動するだけでスクロールすることです。
面倒だけど何かいい方法ない?
クロスドメインの子 iframe を読み込んで、特定のセクションまでスクロールすることはできますか?
たとえば、スタック オーバーフローに関する質問を参照したいとします。JavaScript を使用して、質問のあるページの特定の部分までスクロールし、ハイライトなどをオーバーレイします。
私のハックは、iframe を非常に高い高さのようにロードし、位置を移動するだけでスクロールすることです。
面倒だけど何かいい方法ない?
iframeが別のオリジンドメインから読み込まれている場合、iframeを操作するためにできることはほとんどありません。ブラウザは、iframeコンテンツを直接操作できないクロスオリジンセキュリティを適用します。iframeに読み込まれるコンテンツをある程度制御できる場合は、postMessage
関数を使用できます。
postMessage
APIはかなりよくサポートされているようです。仕様とデモをご覧いただけます。
このブログ投稿には、問題へのアプローチのかなり良い概要があるようです。
iframeの高さを設定するだけのハックは興味深いアイデアですが、表示するコンテンツについて何か知っている場合にのみ機能するように、必要な長さを知る必要があります。