2016-08-03 19 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

こんにちはアンジェロス、私はそれがクロムでもうまくいくのですか? – Emraan

+0

更新された回答を確認してください。既存のコードを変更せずに問題を解決する方法を見つけたと思います。 –

+0

あなたが解決した回答が見つかった場合は、それらをupvoteして、あなたの問題を解決するために最も役立つ答えを受け入れてください! –

答えて

0

ChromeはActiveXをサポートしていません。ブラウザを使用してデータベースに接続しないでください。データベースに接続するサーバー側APIが必要です。あなたがしようとしていることは悪いmkayです!

+0

こんにちはアダレーン、ありがとう。デモのための単なるページアプリケーションです。私は今のところAPIを作成したくありません。回避策について教えてください。 – Emraan

+0

回避策はありませんが、ChromeはActiveXをサポートしていません。 ChromeにADOデータベース接続を作成させるつもりはありません。あなたは非常に迅速にAPIを取り上げることができます。 –

+0

@AdrianBrand実際には、開発者ができることではなく、エンドユーザーがインストールする必要があるものの、解決策があるかもしれません。 –

0

IEでのみサポートされているので、問題はActiveXObject()呼び出しにあります。 ChromeはNPAPIと呼ばれる別のプラグインアーキテクチャを使用します。クロスブラウザープラグインフレームワークFirebreathがありますが、それはあなたの役に立つかもしれません。

UPDATE:ビットの周りに検索した後、私はまた、IE Tab for Google Chromeは、既存のコードが正しく実行できるようにするかもしれないと述べているGoogle Chromeヘルプフォーラム、上this discussionを発見しました。試してみます!

0

ActiveXはIEでのみサポートされています。

私はクライアント側でデータベースを公開しているので、誰でもあなたのDBを操作できるので、この使用を避けなければならないと思います。

私の意見です。この作業を行うためにActiveXを使用しないでください。

この作業を行うWebサービスを作成します。

あなたのお役に立てば幸いです。

関連する問題