JQueryのchangeイベント実行 削除
Message#1 2018年10月22日(月)10時55分 From: 斎藤 |
Redmineというプロジェクト管理ツールから、登録されているチケットをVBAで取得しようとしています。取得処理の中で、セレクトボックスを選択した後でJQueryのchangeイベントが発生する箇所があるのですが、イベントの起動ができません。本掲示板の過去スレッドに出ていた方法も試したのですが、うまくいきませんでした。 みなさんの知恵をお借りしたいです。よろしくお願いします。 <対象ページの構造> 1)HTMLの内容 ★で要素を選択すると、要素に応じたセレクトボックスが表示されます。 td class="add-filter" label for="add_filter_select"?フィルタ追加 /label select id="add_filter_select".../select★ /td 2)イベントの確認 ブラウザでselect id="add_filter_select"でEvent Listeners を 確認すると、以下の通りでした。 ▼change ▼select#add_filter_select application.js?1396112202:78 useCapture: true passive: false once: false ▼handler: f() ?[[scopes]]: Scopes[1] [[FunctionLocation]]: <unknown> ?__proto__: f() ?prototype: {constructor: f} name: "" length: 0 caller: null arguments: null guid: 24 handler の後のf() にマウスを乗せると、 function() { addfilter($this).val(), '',[]; } と表示されました。 3)ソースの確認 handlerのf()で"Show Function Definition"を実行すると 以下のソールが表示・選択されました。 function initFilters() { $('#add_filter_select').change(function() { addFilter($(this).val(), '', []); }); <試したこと> 1)以下の方法では、値がセレクトボックスに表示されましたがイベント は発生しませんでした。 Dim evt As Object Set evt = objIE.document.createEvent("HTMLEvents") evt.initEvent "change", True, False objIE.document.getElementById("add_filter_select").Value = "tracker_id" objIE.document.getElementById("add_filter_select").dispatchEvent evt 2)以下の方法も、値がセレクトボックスに表示されただけでイベント発生せず。 Dim evt As Object Set evt = objIE.document.createEvent("HTMLEvents") evt.initEvent "change", True, False With objIE.document.getElementById("add_filter_select") .Value = "tracker_id" .dispatchEvent evt End With 3)JQueryを直接起動する(つもり。JavaScriptやJQueryは良く分から ないので、Webに出ていたものを例にやってみました) これも、値は表示されましたがイベントは起きませんでした。 Dim evt As Object Set evt = objIE.document.createEvent("HTMLEvents") evt.initEvent "change", True, False objIE.document.getElementById("add_filter_select").Value = "tracker_id" objIE.navigate "JavaScript:addfilter('add_filter_select')" 以上です。 |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。