簡體   English   中英

如何檢測元素是否在跨域父級的iframe中可見

[英]How to detect if an element is visible within an iframe that is on a cross domain parent

正如問題所指出的,我有一個跨網域父級的iframe。 如果該內容在頁面加載時滾動到視圖中或已經在視圖中,則我需要觸發一個事件。 正常檢查距頁面頂部/側面的距離以及視口的高度/寬度似乎不起作用,因為它們在iframe本身中測量頁面。

我無法在父頁面上編輯/添加任何內容來啟用此功能,所有內容都必須在iframe本身內。

這背后的原因是要記錄內容是否曾經被用戶查看過,或者是否已被加載到視線之外並保持在那里。

有一些公司提供這項廣告服務,但就弄清楚它是如何完成的而言,這似乎是一門黑手藝。

任何幫助將不勝感激。

編輯:我提到的提供這項服務的公司的兩個例子。

  1. 查看(4) http://www.doubleverify.com/what-is-verification/下的第一個刻度
  2. 他們聲明的第一件事是可以在右側進行操作http://adxpose.com/home.page

spider.io可能使用瀏覽器計時攻擊來做到這一點。 他們的頁面上有一個視頻:

http://www.spider.io/viewability/

這是有關一些瀏覽器定時攻擊如何工作的不錯報告: http : //www.contextis.com/documents/2/Browser_Timing_Attacks.pdf

簡單的答案是, 您不能

由於存在相同來源策略,因此無法使用ECMAscript訪問跨域iframeDOMwindow object )。

doubleverify和adxpose使用“離線”技術來確定廣告是否可見,它不會在網頁視圖上顯示。 如果他們通過Javascript做到了,那么您所要做的就是查看他們的像素之一,看看它是如何工作的。

您確定這些示例完全基於iframe嗎? 也許他們需要向父窗口添加一些JavaScript。

如果您確實需要這樣做,並且不需要100%的准確性,那么我將嘗試一些基於時間的技術,並假設大多數瀏覽器將優化發生在視圖之外的圖形工作。

現實地說,我認為使用這種技術在合理的時間內無法獲得預期的結果,也無法期待使用一個通用的強大的跨瀏覽器解決方案。 不過那會很有趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM