2016-08-03 2 views
2

버튼을 클릭하면 Chrome에서 javascript 기능 (InsertRecord())이 실행되지 않지만 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

크롬은 ActiveX를 지원하지 않습니다. 브라우저를 통해 데이터베이스에 연결해서는 안되며 데이터베이스에 연결하는 서버 측 API가 있어야합니다. 당신이하려는 것은 나쁜 mkay입니다!

+0

안녕 Adrain, 고맙습니다. 데모 목적을위한 단 하나의 페이지 응용 프로그램이며 지금은 API를 만들고 싶지 않습니다. 해결 방법에 대해 알려주십시오. – Emraan

+0

해결 방법은 없지만 Chrome은 ActiveX를 지원하지 않습니다. Chrome에서 ADO 데이터베이스 연결을 만들지 않게됩니다. API를 매우 빠르게 사용할 수 있습니다. –

+0

@AdrianBrand 실제로 개발자가 할 수있는 것 대신 최종 사용자가 설치해야하는 것이지만 해결 방법이있을 수 있습니다. –

0

IE에서만 지원되므로 ActiveXObject() 호출에 문제가 있습니다. Chrome은 NPAPI라는 다른 플러그인 아키텍처를 사용합니다. 크로스 브라우저 플러그인 프레임 워크 인 Firebreath이있어 사용하기에 좋습니다.

UPDATE : 조금 주위를 검색 한 후, 나는 또한 IE Tab for Google Chrome 기존 코드를 제대로 실행하려면 허용 할 수 있다는 내용의 구글 크롬 도움말 포럼에 this discussion을 발견했다. 한번 해봐!

0

ActiveX는 IE에서만 지원됩니다.

당신이 클라이언트 측에서 데이터베이스를 노출하고 있기 때문에 모든 사람이 DB를 조작 할 수 있으므로이 사용을 피해야한다고 생각합니다.

내 의견입니다. 이 작업을 수행하기 위해 ActiveX를 사용하지 마십시오.

이 작업을 수행 할 웹 서비스를 만드십시오.

희망이 도움이됩니다.

관련 문제