2016-08-03 231 views
2

按鈕點擊不觸發JavaScript功能(InsertRecord())在Chrome中,但在IE中工作正常。按鈕點擊不觸發在Chrome瀏覽器的JavaScript功能,但在IE瀏覽器工作正常

<input id="submit" type="button" value="Request Access" onclick="InsertRecord()" style="width:160px;"/> 


function InsertRecord() 
    { 
     var txtUserName = document.getElementById('txtUserName').value; 
     var txtDept = document.getElementById('ddlDept').value; 
     var txtClass = document.getElementById('txtClass').value; 
     var txtRole = document.getElementById('ddlRole').value; 
     var txtAccess = document.getElementById('ddlAccess').value; 
     if (txtUserName.length != 0 || txtDept.length != 0 || txtClass.length !=0 || txtRole.length !=0 || txtAccess.length !=0) 
     { 
      var connection = new ActiveXObject("ADODB.Connection"); 
      var connectionstring = "Data Source=dvuksdcwsql001;Initial Catalog=RP_5500_AppDB;Persist Security Info=True;User ID=CPT_DEV;Password=Cpt%[email protected];Provider=SQLOLEDB"; 
      connection.Open(connectionstring); 
      var rs = new ActiveXObject("ADODB.Recordset"); 
      rs.Open("insert into Range_Plan_Access values('" + txtUserName + "','" + txtDept + "','" + txtClass + "','" + txtRole + "','" + txtAccess + "')", connection); 
      alert("Access Requested Successfully!");    

      connection.close(); 
     } 
     else 
     { 
      alert("Please enter a value for User Name \n Department \n Class \n Role \n Access Required!"); 
     } 
    } 

您能否讓我知道這裏的問題?

感謝,

+0

嗨安吉洛斯,你可以讓我知道我怎麼才能得到它在Chrome甚至工作? – Emraan

+0

檢查我更新的答案,我想我已經找到了一種方法來解決您的問題,而無需更改任何現有的代碼。 –

+0

如果您發現任何有用的答案,請記住加入他們並接受幫助您解決您的問題最多的答案! –

回答

0

Chrome不支持ActiveX。您不應該通過瀏覽器連接到數據庫,您應該有一個連接到數據庫的服務器端API。你正在努力做什麼是壞的!

+0

嗨Adrain,謝謝。它只是一個用於演示目的的單頁應用程序,我現在不想創建一個API。您能否讓我知道解決方法? – Emraan

+0

沒有解決辦法,Chrome不支持ActiveX。您不會讓Chrome創建ADO數據庫連接。您可以快速調出API。 –

+0

@AdrianBrand實際上可能有一個解決方法(正如我的答案中所述),儘管它是最終用戶應該安裝的東西,而不是開發人員可以執行的操作。 –

0

問題在於ActiveXObject()調用,因爲它們只在IE中受支持。 Chrome使用不同的插件架構,稱爲NPAPI。有一個跨瀏覽器插件框架,Firebreath,這可能對你很有用。

UPDATE:了一下週圍搜索後,我也對谷歌Chrome瀏覽器幫助論壇,其中指出,IE Tab for Google Chrome可能允許現有的代碼正常運行發現this discussion。試一試!

0

僅在IE中支持ActiveX。

我想你必須避免這種使用,因爲你在客戶端暴露你的數據庫,所以任何人都可以操縱你的數據庫。

這是我的意見。避免使用ActiveX來完成這項工作。

創建一個web服務來完成這項工作。

希望它能幫助你。

相關問題