按钮点击不触发在Chrome浏览器的JavaScript功能,但在IE浏览器工作正常

问题描述:

按钮点击不触发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

如果您发现任何有用的答案,请记住加入他们并接受帮助您解决您的问题最多的答案! –

Chrome不支持ActiveX。您不应该通过浏览器连接到数据库,您应该有一个连接到数据库的服务器端API。你正在努力做什么是坏的!

+0

嗨Adrain,谢谢。它只是一个用于演示目的的单页应用程序,我现在不想创建一个API。您能否让我知道解决方法? – Emraan

+0

没有解决办法,Chrome不支持ActiveX。您不会让Chrome创建ADO数据库连接。您可以快速调出API。 –

+0

@AdrianBrand实际上可能有一个解决方法(正如我的答案中所述),尽管它是最终用户应该安装的东西,而不是开发人员可以执行的操作。 –

问题在于ActiveXObject()调用,因为它们只在IE中受支持。 Chrome使用不同的插件架构,称为NPAPI。有一个跨浏览器插件框架,Firebreath,这可能对你很有用。

UPDATE:了一下周围搜索后,我也对谷歌Chrome浏览器帮助论坛,其中指出,IE Tab for Google Chrome可能允许现有的代码正常运行发现this discussion。试一试!

仅在IE中支持ActiveX。

我想你必须避免这种使用,因为你在客户端暴露你的数据库,所以任何人都可以操纵你的数据库。

这是我的意见。避免使用ActiveX来完成这项工作。

创建一个web服务来完成这项工作。

希望它能帮助你。