iframe の外部からの JavaScript コードがテキスト入力を更新すると、iframe 内のノックアウト テキスト入力値バインディングが更新されないことがわかりました。これはバグですか?これを回避する方法について何か考えはありますか?
iframe でテストされているノックアウト ページをロードする JavaScript UI テスト フレームワークを使用しています。テスト コードでは、jQuery を使用して iframe 内のページを操作します。jQuery の $('#myTextInputId).val('blah').change() を使用して iframe のテキスト ボックスを更新すると、ノックアウト バインディングは基になるビュー モデルを更新しません。ここにこの問題の実際のサンプルがあります: http://stewartarmbrecht.droppages.com/myhtmlpage.html
サンプルには 2 つの iframe があります。
最初の iframe は、テキスト ボックスと、テキスト ボックスの値が空でない場合に表示される保存ボタンを含むページを読み込みます。最初の iframe ページ内のコードは、jquery を使用して独自のテキスト入力を更新します。保存ボタン自体が表示されます。
2 番目の iframe は同じページを読み込みますが、今回は iframe 内のコードはテキスト ボックスを更新しません。代わりに、親ウィンドウの JavaScript がテキスト ボックスの値を更新します。問題は、更新後に 2 番目の iframe の保存ボタンが表示されないことです。私が見つけたのは、iframe の外側からコードによって発生したときに、ノックアウト バインディングが変更イベントに応答しないことです。
これを回避する方法を理解するのを手伝ってくれる人はいますか? これは、UI 自動化戦略の主要なブロック バグです。
ありがとう!!スチュワート