按钮点击不触发在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!");
}
}
您能否让我知道这里的问题?
感谢,
Chrome不支持ActiveX。您不应该通过浏览器连接到数据库,您应该有一个连接到数据库的服务器端API。你正在努力做什么是坏的!
嗨Adrain,谢谢。它只是一个用于演示目的的单页应用程序,我现在不想创建一个API。您能否让我知道解决方法? – Emraan
没有解决办法,Chrome不支持ActiveX。您不会让Chrome创建ADO数据库连接。您可以快速调出API。 –
@AdrianBrand实际上可能有一个解决方法(正如我的答案中所述),尽管它是最终用户应该安装的东西,而不是开发人员可以执行的操作。 –
问题在于ActiveXObject()
调用,因为它们只在IE中受支持。 Chrome使用不同的插件架构,称为NPAPI。有一个跨浏览器插件框架,Firebreath,这可能对你很有用。
UPDATE:了一下周围搜索后,我也对谷歌Chrome浏览器帮助论坛,其中指出,IE Tab for Google Chrome可能允许现有的代码正常运行发现this discussion。试一试!
仅在IE中支持ActiveX。
我想你必须避免这种使用,因为你在客户端暴露你的数据库,所以任何人都可以操纵你的数据库。
这是我的意见。避免使用ActiveX来完成这项工作。
创建一个web服务来完成这项工作。
希望它能帮助你。
嗨安吉洛斯,你可以让我知道我怎么才能得到它在Chrome甚至工作? – Emraan
检查我更新的答案,我想我已经找到了一种方法来解决您的问题,而无需更改任何现有的代码。 –
如果您发现任何有用的答案,请记住加入他们并接受帮助您解决您的问题最多的答案! –