2011-03-17 59 views
0

您好再次StackOverflow的社區:什麼是在Javascript方面新的空白窗口和彈出的區別

我需要防止我的網站從傳統的彈出窗口(被打開,由於一些預防欺詐的問題,因爲該網站是一個廣告網絡,通過在彈出窗口中自動加載廣告可以實現欺詐行爲)。通過彈出式窗口,我的意思是小的浮動窗口打開,如:window.open(URL, name, options)。起初我被檢查爲window.opener屬性,如:

if (window.opener !== null && window.opener !== undefined) {
window.self.close();
}

但是,顯然關閉一個正常空白窗口(從target='_blank'),因此網站無法在Facebook或Twitter,其中外部共享鏈接加載在一個空白窗口中。 有沒有辦法知道一個新窗口具體是一個彈出窗口。我在想這樣做上面的代碼,但檢查中常用的彈出窗口關閉屬性,如工具欄,狀態欄的,等等。例如:

if (window.toolbar.visible !== true && other window properties are checked) {
window.self.close();
}

是這種做法對嗎?還有哪些其他想法可以使用? 非常感謝您的時間。

+0

我想如果你真的只想讓你的域訪問頁面,那麼爲什麼不給只訪問你的服務器執行該頁面/彈出窗口。當然,在一個結構控制裏面......類似於:如果這是popup,那麼執行驗證---它是我的服務器嗎?如果是的話,否則執行拒絕! – B4NZ41 2011-03-17 19:32:56

+0

@Fernando Costa:這不是限制只能從我的域名訪問的問題;實際上,我想從很多地方訪問該網站。關鍵在於防止欺詐,因爲該網站是一個廣告網絡,欺詐可以通過在_popup_窗口中快速自動加載廣告來實現,該窗口甚至可以足夠小。對不起,如果我不清楚這個問題的性質,我非常感謝你的迴應。 – YOMorales 2011-03-17 19:48:33

回答

1

如果你問我,這是一個傻瓜的差事。

  • 不可能剔除誤報
  • 大多數瀏覽器不聽從window.close()如果揭幕戰是從不同的域,如果JavaScript是禁用
  • 會失敗
+0

不一定是傻瓜的差事。兩件事情:1)如果JavaScript被禁用,那麼人們怎麼能通過Javascript打開一個彈出窗口。 2)從不同的域打開時,至少Firefox和Chrome會遵守window.close();這就是爲什麼我在發佈Facebook,Twitter和其他網站的鏈接時遇到麻煩。 – YOMorales 2011-03-17 19:42:24