想定する環境は、社内の IE11 でのイントラネットです。jQuery を使う事によってページ上のコンテンツを効率良く扱えるはずで、Excel との連携に役立つと思います。 デモページ( 開発者ツールを表示させてから再表示して下さい ) 5行目の空のスクリプト要素は、このページのデフォルトのスクリプトを VBScript にする為にできるだけ先頭に置いています。その上の META 要素によって、VBScript が一番安心して動作すると思われる IE8 のドキュメントモードに変更しています。また、その動作が正常に行われている事を確認する為に、11行目で document.documentMode を出力しています。 VBScript から呼ばれるサポート関数 やはり、VBScript だけでは関数の扱いで無理があるので、サポート関数を JavaScript 側に用意しています。jQuery の全ての処理で使えるわけではありませんが、each メソッドと click メソッドのサポートができるようにしています。 VBScript の関数名は、文字列で指定して JavaScript 側で eval で実際に呼び出しています。想定する環境が閉鎖環境なので、このような使い方で問題無いと思います。( そもそも、IE でないとこのページは動作しません ) jQuery は、1.9.1 でテストしました。あまり新しいと IE には都合が悪いかもしれないのでこのへんのバージョンを使用しています。
<!DOCTYPE html> <html> <head> <meta http-equiv="x-ua-compatible" content="IE=8"> <script language="VBScript"></script> <script language="JScript" type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> </head> <body> <div style='position:absolute;left:0px;top:0px;font-size:8px;color:#999999;'> <script language="VBScript"> Call document.write(document.documentMode) </script> </div> <pre> <input type="button" value="実行"> <input type="text" name="f001" value="1234567" > 番号 <input type="text" name="f002" value="あいうえお" > 氏名 <input type="text" name="f003" value="123-1567" > 郵便番号 <input type="text" name="f004" value="日本のどこか"> 住所 <input type="text" name="f005" value="1999/01/10" > 誕生日 <input type="button" value="直イベント" onclick="Call alert('VBScriptがデフォルトです')"> </pre> <script language="JScript" type="text/javascript"> // ********************************** // VBScript から呼ばれるサポート関数 // ********************************** function eachLoop( ) { eval( arguments[0] + "("+window.vbscnt+",this)" ); window.vbscnt++; } function callback( obj ) { eval( obj.data ) } function arr( param ) { window.vbscnt = 0; var a = []; a[0] = param; return a; } </script> <script language="VBScript"> ' ********************************** ' click イベントを MyFunc で呼び出す ' ********************************** Call jQuery("input").eq(0).click( "MyFunc(this)", callback ) ' 引数を二つで、click メソッドを呼んでいるので、Call が必要です ' ********************************** ' jQuery オブジォクトの作成 ' ********************************** Set gdata = jQuery("pre input") ' ********************************** ' Each 処理を VBS の MyLoop で呼び出す ' ********************************** Call gdata.each( eachLoop, arr("MyLoop") ) ' ********************************** ' Each 処理用 MyLoop ' ********************************** function MyLoop( idx, objThis ) console.log( objThis ) console.log( idx ) end function ' ********************************** ' イベント用 MyFunc ' ********************************** function MyFunc( objThis ) console.dir( objThis ) end function </script> </form> </body> </html>
|
【jQueryの最新記事】
- jQuery の $.get を使用した ajax のテンプレート
- jquery.balloon.js を使用した簡単なバルーン( マウスオーバーで表示する追加説明用 )の作り方
- jQuery による link 要素の追加と削除を bootstrap.css でリアルタイムチェック
- FileReader で、ローカルの CSV を読み込んで(shift_jis)、jQuery でテーブルを作成して表示する
- jQuery + bootstrap.js で ajax の GET と POST を使用した DB テーブルを更新する UI テンプレート
- jQuery : 貼り付けるだけで、ページ右下にページ先頭にジャンプするリンクを表示させる( アニメーションは無し )
- STYLE 要素を追加して、CSS テキストをセットして、jQuery で CSS に important 指定を追加する。
- ページの右下に、ページの先頭へ移動するボタンを追加する(ページの先頭から 200px までは、スクロールボタンを表示しない)
- テーブルのTDをクリックしたら、INPUT で値を変更可能にして、元の値と違うものにはフラグを立てる処理を絵で書いて説明してみました
- jQuery を使用してサーバから取得した JSON データを元にテーブルを作成し、その後から列を加工する
- JSON 配列を WEB より読み出して jQuery で動的にテーブルを作成して表示する
- jQuery UI の Datepicker Widget のオプション
- FormData を使用して、jQuery で配列として PHP に送る
- 必要なデータを隠しリストボックス( multiple ) に jQuery で追加して配列として PHP に送る
- Android Studio の追加日本語化用に、キャラクタセットに依存しないコード文字列を作成するツールを作成しました
- 画像ファイルが存在した時のみ、表示する jQuery の記述
- jQuery で mobile(スマホ) かどうかのチェックをしたくて調べたら、Stack Overflow の記事でいろんな方法が答えられていました。
- jQuery と FileReader オブジェクトによる、ローカルの複数画像ファイルのプレビュー表示
- とても面白くて簡単な jQuery のクリックしたコンテンツ以外を暗転(Blackout) するサンプル
- jQuery で、左右に並んだリストボックスの右側のデーターをダブルクリックしたら左へ転送してソートする処理