我有一個使用JavaScript計數器計算用戶「活動」時間的網頁,這意味着用戶花費在查看此頁面(而不是某個其他頁面)的時間。我通過使用document.onfocusout/onfocusin(IE)和window.onblur/onfocus(other)啓動/停止它們來實現此目的。然而,當用戶在同一頁面(flash,java等)內單擊插件時,窗口失去焦點,window.onblur被解僱。有沒有辦法說明用戶還在我的頁面上?當點擊插件時保留瀏覽器窗口焦點
在此先感謝
我有一個使用JavaScript計數器計算用戶「活動」時間的網頁,這意味着用戶花費在查看此頁面(而不是某個其他頁面)的時間。我通過使用document.onfocusout/onfocusin(IE)和window.onblur/onfocus(other)啓動/停止它們來實現此目的。然而,當用戶在同一頁面(flash,java等)內單擊插件時,窗口失去焦點,window.onblur被解僱。有沒有辦法說明用戶還在我的頁面上?當點擊插件時保留瀏覽器窗口焦點
在此先感謝
這確實是一個問題。但你可以欺騙你的方式。 Flash Player能夠與其腳本主機通信,在您的情況下是JavaScript主機。你所做的是,當Flash Player電影獲得焦點時(我相信你可以用ActionScript捕捉焦點),使用Flash Player類API將其編程爲通知其主機,該API將調用JavaScript函數,該函數將啓動定時器再次(並且可選地將焦點返回到頁面,因爲大多數情況下通常是從頁面上偷取焦點是糟糕的主意.Flash Player在默認情況下竊取焦點 - 如果您單擊Flash Player電影,鍵盤不會被JavaScript捕獲,只能由Flash Player直接播放。)
你明白我在說什麼嗎?
我想你是暗示要編輯flash代碼本身?這是不可能的,因爲我正在處理由用戶上傳的任意內容,這些內容也可能在iframe中。另外,它沒有解決java applet的情況。 – periklis
編輯:IE的同行,document.onfocusin和document.onfocusout似乎沒有受到這個問題的困擾,他們仍然把重點放在窗口 – periklis