1. 程式人生 > >IE瀏覽器下OCX控制元件的相容問題(續集)——Javascript程式碼實現

IE瀏覽器下OCX控制元件的相容問題(續集)——Javascript程式碼實現

根據上一篇 http://blog.csdn.net/yangyuyu77584/article/details/39694387  博文方案,現給Javascript程式碼實現。

1.瀏覽器的判斷程式碼。(jQuery新版我還沒有使用,不知道是否已經修改了)這裡我自己補充一個判斷方法,程式碼如下:

function getBrowserVersion()
{
	var userAgent = navigator.userAgent,   
        rMsie = /(msie\s|trident.*rv:)([\w.]+)/,   
        rFirefox = /(firefox)\/([\w.]+)/,   
        rOpera = /(opera).+version\/([\w.]+)/,   
        rChrome = /(chrome)\/([\w.]+)/,   
        rSafari = /version\/([\w.]+).*(safari)/;  
        var ua = userAgent.toLowerCase();  
        function uaMatch(ua) {  
            var match = rMsie.exec(ua);  
            if (match != null) {  
                return { browser : "IE", version : match[2] || "0" };  
            }  
            var match = rFirefox.exec(ua);  
            if (match != null) {  
                return { browser : match[1] || "", version : match[2] || "0" };  
            }  
            var match = rOpera.exec(ua);  
            if (match != null) {  
                return { browser : match[1] || "", version : match[2] || "0" };  
            }  
            var match = rChrome.exec(ua);  
            if (match != null) { 
			return { browser : match[1] || "", version : match[2] || "0" };  
            }  
            var match = rSafari.exec(ua);  
            if (match != null) {  
                return { browser : match[2] || "", version : match[1] || "0" };  
            }  
            if (match != null) {  
                return { browser : "", version : "0" };  
            }  
        }  
        return uaMatch(userAgent.toLowerCase());          
}
2.JS指令碼中要使用OCX時,就去判斷瀏覽器。根據瀏覽器的不同,大致可以分成三類:

(1)、非IE的瀏覽器;

(2)、IE8.9的64位瀏覽器;

(3)、IE瀏覽器除(IE8.9的64位瀏覽器)。

判斷程式碼如下:

var browserVer = getBrowserVersion();
var nBrowserVersion = parseInt(browserVer.version,10);
if("IE"!= browserVer.browser)
{
	//你的程式碼
}
else if(("IE"== browserVer.browser) && 
	((nBrowserVersion == 8) || (nBrowserVersion == 9)) && 
	(window.navigator.platform == "Win64"))	
{
	//你的程式碼
}
else
{
	//你的程式碼
}

注:window.navigator.platform

Returns a string representing the platform of the browser.(即返回瀏覽器平臺的字串)比如“Win32”“Win64”等。

進一步瞭解這個方法可能對MAC系統有問題(可能)。這裡後續我繼續研究,會進一步更新。請博友原諒.

注:Mac系統不能安裝IE瀏覽器。還有這裡沒有考慮 像win2003 sever與win2008 sever等一些伺服器系統。這裡主要是解決個人電腦個人作業系統。

還有,上面程式碼首先判斷是否是IE瀏覽器,再次判斷瀏覽器版本號。最後才去判斷瀏覽器的平臺。所有這樣程式碼是合理的。如果博友們有更好的版本請評論與指教,共同進步。謝謝

這樣的Javascript程式碼就可以解決OCX上的問題。




相關推薦

IE瀏覽器OCX控制元件相容問題(續集)——Javascript程式碼實現

根據上一篇 http://blog.csdn.net/yangyuyu77584/article/details/39694387  博文方案,現給Javascript程式碼實現。 1.瀏覽器的判斷程式碼。(jQuery新版我還沒有使用,不知道是否已經修改了)這裡我自己補充

IE瀏覽器OCX控制元件相容問題

一、IE8瀏覽器的相容問題 請在編寫OCX控制元件時,加入介面安全程式碼。 二、IE8,IE9 64位瀏覽器的相容問題 因為64位系統系統IE8與IE9都有兩個版本,一個是32位瀏覽器,一個是64位

IE瀏覽器呼叫OCX控制元件的一般方法

(一)     先用regsvr32  檔案路徑\xxx.ocx 命令註冊,如果註冊成功,會提示註冊成功。     需要解除安裝用regsvr32  /u  檔案路徑\xxx.ocx  命令 (二)     到登錄檔查詢OCX的CLSID     regedit 開啟

單機情況IE瀏覽器訪問activeX控制元件出現紅叉問題的解決

本人也是剛接觸activeX控制元件,自己通過vs2010編寫了幾個簡單的例子,經測試工具測試過都可以用,在html檔案新增之後如果雙擊檔案用IE開啟,會有載入控制元件之類的提示,但是在瀏覽器中輸入url地址訪問時,在頁面中會出現一個紅叉,修改IE的設定也沒用。本文要解決的

IE瀏覽器常見的CSS相容問題

寬高bug   【1】IE6-瀏覽器下子元素能撐開父級設定好的寬高 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Do

呼叫OCX控制元件時的宣告和實現

FirstLessonOcx.h #if !defined(AFX_FIRSTLESSONOCX_H__0CA538A0_1E9A_49D9_ADBE_0D21B83849DF__INCLUDED_) #define AFX_FIRSTLESSONOCX_H__0CA53

瀏覽器ocx控制元件安裝 IE瀏覽器可用

文件主要用於記錄公司所使用產品的二次開發,記錄ocx外掛的安裝過程。環境準備:系統的開發環境、IE瀏覽器與產品提供的OCX-SDK檔案,安裝流程如下。 一、將OCX-SDK檔案中補丁資料夾中補丁檔案分

swiper在ie瀏覽器不能相容

最近在做一個輪播的效果。找到了swiper這個外掛。在移動端用著挺好的。但是在PC端的話,IE下效果全部失效。後來瞭解到,swiper3是專門針對移動端寫的。如果想相容IE8的話,應該引入swi

關於OCX控制元件ie下調用不了介面的解決方法

在做OCX控制元件的時候,將ocx放入web伺服器的時候時候發現控制元件可以載入,但是不能用裡面的介面,js得到的Obj中提示contentdocument拒絕訪問。經過多番查詢方法,發現ActiveX要在遠端的ie上面執行的話,需要實現安全介面。發現如下解決方

IE11中OCX控制元件的事件不能夠被IE捕獲的解決辦法

寫了一個OCX控制元件,在OCX控制元件中觸發一事件,在IE11之前的版本使用attachEvent註冊一個回撥函式後IE11可以捕獲到事件,但IE11中提示attachEvent不支援. In IE11, the attachEvent has been droppe

火狐瀏覽器(firefox)支援ocx控制元件

安裝控制元件ffactivex-setup-r39.exe即可,然會在firefox附加元件中檢視是否按照成功, 需要注意的是ie中 <object>標籤寫法 <OBJECT ID="CardActive" CLASSID="CLSID:CBA5D514-

EasyNVR流媒體伺服器網頁相容除錯:ie瀏覽器的介面呼叫成功但頁面無法顯示實時的資料

許多問題很難在開發的過程中就想的面面俱到,都是在實際應用、除錯的過程中一一的優化的。由於easynvr的受眾越來越多,因此也出現了好多在開發之初並沒有留意的一些細節。我這次發現的問題就是給客戶遠端解決問題過程中發現的。在此記錄下來方便自己,也方便大家瞭解。

解決IE不能載入OCX控制元件問題(一)

OCX是VS2010開發 在共享DLL中使用MFC 執行庫是多執行緒選擇的是MD IE瀏覽器開啟嵌入OCS的頁面後,無法載入OCX,如下圖: 在IE瀏覽器開啟該URL後,會提示“IE瀏覽器已停止此站點的OCX控制元件安裝到您的計算機”  按照網上的說明,設定IE選項

Win7 如何註冊OCX控制元件

問題 這兩天寫了一個軟體,結果是註冊OCX控制元件是出錯了,錯誤代號:0x80040200.我問了一下他的系統是Windows 7,我想可能是UAC控制權限的問題,cmd需要以管理身份執行。

ie瀏覽器get方式獲取數據無效問題

最好的 style mil ajax請求 ajax random font 時也 internet 在ie瀏覽器用get方式獲取數據時因為發送得到參數地址都是一樣的,所以瀏覽器會優先從緩存獲取數據,而不去服務器請求數據,post由於參數不同所以不會影響。 解決方法: 1.

讓網頁在ie瀏覽器以最高版本解析網頁

com class mpat ble 標準模式 -1 高版本 content 解析 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-

IE瀏覽器AJAX緩存問題導致數據不更新的解決辦法

bsp pan color span cache get 獲取 無法 並不會 利用ajax查詢數據,在谷歌瀏覽器下可以獲取到最新數據,而在IE中獲得是舊數據,無法獲得最新的數據,經查資料,才發現時IE緩存再作怪。 發現此ajax請求用的get方式,每次請求的URL一模一樣,

WPF 窗體基類實現的體驗及實現回車到控制元件

原文: WPF 窗體基類實現的體驗及實現回車到下一控制元件 1、窗體基類實現參考 http://weblogs.asp.net/psheriff/archive/2009/11/02/creating-a-base-window-class-in-wpf.aspx 2、基類不能像Wi

winformPictureBox控制元件的SizeMode 屬性區別

在同一個PictureBox控制元件下分別設定PictureBox控制元件的SizeMode 屬性的五個不同屬性 顯示這張圖片 1、SizeMode.Normal 模式 圖片置於 PictureBox 的左上角,而圖片過大使得 PictureBox 只能顯示左上角一部分。

ie瀏覽器placeholder屬性失效的解決辦法

1,在頁面設計中,表單的設計需要提示性的詞語來引導使用者使用,最常見的的就是使用標籤placeholder屬性,只可惜這個HTML 5屬性在低版本的IE下會失效,那該怎麼辦呢? 2,placeholder 屬性提供可描述輸入欄位預期值的提示資訊。該提示會在輸入欄位為空時顯示,並會在欄位獲得焦