我已经问了一个类似的问题,但我需要一个更具体的案例,所以我决定提出一个新问题,不要混淆。
1。我正在建立一个PTC网站,用户可以通过访问网站获得x秒的付款。
2。广告视图的工作方式如下:打开一个新页面,其中包含两个内容,即带有计数器的顶部栏和包含广告商网站的iframe。)
3。我想强制用户在广告客户付费的x秒内看到该页面。
4. 要检查用户是否正在查看该页面,IMO,我需要检查文档或iframe是否具有焦点。
问题:
1。我无法使用window.onblur
或window.onfocus
,因为用户可能会在页面加载之前失去焦点并绕过这些命令。
2。我无法在iframe上使用hasFocus()
,因为Chrome会抛出此错误:Blocked a frame with origin "xxx" from accessing a frame with origin "yyy". Protocols, domains, and ports must match.
我知道两个类似的网站可以实现这一点,但是他们的javascript非常奇怪,我无法理解一行。 (neobux.com和clixsense.com)
我为此疯狂,因为我已经尝试了很多东西而且没有一个工作,我真的需要帮助。
谢谢!
答案 0 :(得分:1)
var has_focus = true;
function loading_time() {
$(":focus").each(function() {
if($(this).attr("id")=="iframeID") has_focus = true;
});
if(has_focus==true) alert('page has focus');
else alert('page has not focus');
setTimeout("loading_time()", 2000);
}
window.onblur = function(){
has_focus=false;
}
window.onfocus = function(){
has_focus=true;
}
$(window).load(function(){
setTimeout("loading_time()", 2000);
});
为了提高效率,您需要var has_focus = false;
并让用户点击页面上的某个位置。