te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>javascript - Popup detection before user logs in - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Popup detection before user logs in - Stack Overflow

programmeradmin3浏览0评论

Is there a good way to determine if a person has a popup blocker enabled? I need to maintain a web application that unfortunately has tons of popups throughout it and I need to check if the user has popup blockers enabled.

The only way I've found to do this is to open a window from javascript, check to see if it's open to determine if a blocker is enabled and then close it right away.

This is slightly annoying since users who do not have it enabled see a small flash on the screen as the window opens and closes right away.

Are there any other non-obtrusive methods for acplishing this?

Is there a good way to determine if a person has a popup blocker enabled? I need to maintain a web application that unfortunately has tons of popups throughout it and I need to check if the user has popup blockers enabled.

The only way I've found to do this is to open a window from javascript, check to see if it's open to determine if a blocker is enabled and then close it right away.

This is slightly annoying since users who do not have it enabled see a small flash on the screen as the window opens and closes right away.

Are there any other non-obtrusive methods for acplishing this?

Share Improve this question edited Oct 30, 2008 at 13:50 swilliams 48.9k27 gold badges102 silver badges130 bronze badges asked Oct 30, 2008 at 13:44 Chris ConwayChris Conway 16.5k24 gold badges98 silver badges113 bronze badges 1
  • Alternative hacky way is to check for '[native code]' was suggested in stackoverflow./questions/26094333/… – Michael Freidgeim Commented Feb 20, 2021 at 22:59
Add a ment  | 

5 Answers 5

Reset to default 8

Read Detect a popup blocker using Javascript:

Basically you check if the 'window.open' method returns a handle to a newly-opened window.

Looks like this:

var mine = window.open('','','width=1,height=1,left=0,top=0,scrollbars=no');
if(mine)
    var popUpsBlocked = false
else
    var popUpsBlocked = true
mine.close()

As others have said, you'll have to try it and see, but checking for the resulting window object being non-"falsy" isn't sufficient for all browsers.

Opera still returns a Window object when a popup is blocked, so you have to examine the object sufficiently to determine if it's a real window:

var popup = window.open(/* ... */);
var popupBlocked = (!popup || typeof popup.document.getElementById == "undefined");

As others have mented, the only way to find out for sure is to try it.

However, a good approximate answer to the question “is a popup-blocker installed” is, these days, “yes”. All recent browsers will block your pop-ups by default, so you'd better design your app to cope gracefully with this. Namely, don't try to window.open except in reaction to a user interaction (typically onclick), and you'll be fine.

I don't think there is any way of detecting this without attempting to open a window, as popup blockers don't add anything that can be interrogated in JS.

Popups that are opened in response to an action by a user—such as clicking a link—shouldn't be blocked by popup blockers.

发布评论

评论列表(0)

  1. 暂无评论