サイトで実行される iframe があります (別のドメインを使用)。ユーザーにとって実行可能かどうか、またはこのiframeが「住んでいる」ページがアクティブかどうかをiframe内で知ることができますか。ありがとう。
5829 次
2 に答える
3
別のドメイン/ポート/スキームにいる場合、フレーム自体からフレームを埋め込むメインページにアクセスできないため、これは実際には不可能です。
iframe が同じドメイン && ポート && スキームにある場合は、次のようにすることができます。
<html>
<body>
<iframe src="frame.htm" id="myframe" style="display:block"></iframe>
</body>
</html>
そして、frame.htm:
<script>
var is_hidden = parent.document.getElementById("myframe").style.display == "none";
alert(is_hidden ? "I am hidden" : "I am visible");
</script>
更新「別のドメインから」を見落としました-質問の一部であり、それに応じて投稿を更新しました。
于 2012-11-12T20:33:54.863 に答える
1
Intersection Observer APIを確認してください。2 つの異なるドメインで動作させることができました。
このようなものが私のために働いた:
function handleIntersect(entries, observer) {
console.log('intersecting', entries[0].isIntersecting, 'visible', entries[0].isVisible);
}
let observer;
let options = {
root: null,
rootMargin: "0px",
threshold: [0.5]
};
observer = new IntersectionObserver(handleIntersect, options);
// The DOM element here should be a div that captures the whole content of the iframe.
observer.observe(DOM_ELEMENT);
于 2021-04-07T14:52:55.547 に答える