1

pyjd / hulahop / pyxpcomを使用して入力フィールドを含むHTMLドキュメントをロードしています。この入力フィールドは、「onchange = ....」で、AJAX呼び出しを実行するJS関数にバインドされています。

htmlは次のようになります。

...
<input name="inp" type="text" onchange="checkInput()"></input>
...

このコードを使用して、入力フィールドを簡単に見つけて変更できます。

import pyjd
pyjd.setup(URL)
bw = pyjd.hula.wv
doc = bw.getDomDocument()

inp = doc.getElementsByName("inp").item(0)
inp.value = "somestring"

ただし、これは「onchange」ハンドラーをトリガーしません。これを行うには、入力フィールドに手動でタブイン/タブアウトする必要があるようですpyxpcomインターフェイスがC++のものにかなり近いことを確認したので、C ++スニペットをたくさん読んだので、FocusManagerインターフェイスを使用して.focus()と.blur()を発行していくつかのことを試しました。 「inp」要素のイベントですが、これまでのところ成功していません。

誰かがこれがどのように機能することになっているのか知っていますか?それも可能ですか?アタッチされたonchangeハンドラーを直接呼び出す方法はありますか?

PS:パジャマタグで申し訳ありませんが、「pyjd」タグを作成することは許可されていません:-)

4

1 に答える 1

1

変更イベントは通常、フィールドがフォーカスを失ったとき、またはEnterキーが押されたときに送信されます。スクリプトによる変更によって変更が発生することは想定されていないため、必要な場合は独自の変更イベントを発生させることをお勧めします。クリックイベントをディスパッチするためのサンプルコードがいくつかあります。変更イベントの手順は似ていますが、その場合、イベントタイプはMouseEventsではなくEventsであるため、代わりにInitEventを呼び出す必要があります。

于 2011-03-30T20:46:27.527 に答える