【分享】所有瀏覽器可共享數據的JS插件


  很久以前就在思考,能不能讓網站記住密碼對整個電腦的所有瀏覽器都有效。不過很快就否定了,畢竟每個瀏覽器都運行在完全獨立的環境里,除非像QQ自動登錄那樣,通過插件來實現。

  不過最近遇到個問題,非得解決這不可。


  由於網站的部分用戶是通過程序內嵌瀏覽器訪問的,用過Webbrowser控件的童鞋都知道,不管系統ie版本有多高,內嵌網頁始終用ie7的內核(除非系統只有ie6)。
  就出現大麻煩了:在內嵌網頁里登錄后,雖然之后的頁面轉跳確實還能夠識別cookie。不過當程序彈出網頁時,情況就大不一樣了。彈出來的是系統默認的瀏覽器,未必就是ie7的內核,甚至根本就不是ie瀏覽器!於是就出現用戶未登錄的情況了。
  
  要解決此問題,似乎唯一的方法就是彈出url的時候,加上類似cookie的session值。就像從QQ里點出郵箱,微博之類的,總是帶着一串眼花繚亂的亂碼,作為認證。

  
  不過,為了能簡單的解決此問題,並且不污染那簡短的網址,決定使用個可以在系統全局保存變量的方法。那就喚出萬能的flash來解決吧~~

  用上flash外援,一切難題都迎刃而解了~ FP很早的版本里就有個叫SharedObject的東東,可以在整個系統,不對,是整個網絡里,共享數據!不過我們現在沒必要數據遠程共享,只做本地共享就可以了。

  SharedObject的使用非常簡單,因為沒有過期時間這玩意,所以比操作cookie還容易。這里就不累述了~
  AS和JS兩部分的代碼都非常簡單,基本的交互而已,已封裝成GlobalCookie.js插件。想體驗下所有瀏覽器共享數據的感覺:

  
  http://www.etherdream.com/FunnyScript/GlobalCookie/

  

  (不過有個詭異的是,最新版的Chrome瀏覽器突然失效了~ Maxthon的Webikit倒是沒問題。。。)

  

 

  雖然這插件很簡單沒任何技術含量。不過使用這種思路,共享全局數據的模式,可以使很多Web的體驗大幅改進了。
  例如開多個瀏覽器逛論壇刷微博,很是消耗服務器資源。通過全局的數據共享,相同的數據只需傳輸一份,到客戶端之后再相互分配協調。

  說完了全局的共享,要是能全局發送消息,相互通知就更完美了。事實上仍是可以實現的,使用flash的LocalConnection對象即可!詳情請聽下回分解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM