0

Ext-JS 2.2 を使用する Web アプリケーションがあります。特定のコンポーネントには、使用するボタンを追加しようとしている空のツールバーがあります

myPanel.getTopToolbar().insertButton(0, [...array of buttons...]);

ただし、IE6/7 では、ext-all-debug.js の 20241 ~ 20242 行が原因で失敗します。

var td = document.createElement("td");
this.tr.insertBefore(td, this.tr.childNodes[index]);

「this.tr.childNodes([0])」は IE にまだ存在しないため、これは「無効な引数」で失敗します。

本当の質問: 以下のような CSS を使用して、すべてのツールバー <tr> に子を追加して、 this.tr.childNodes[0] が見つかるようにすることはできますか?

div.x-toolbar tr:after { content: " "; }

これがハックであることは十分承知していますが、法的な理由により、Javascript を変更することはできず、各ツールバーに空のボタン ({}) を追加することさえできません。これを理解できる人への大きな称賛。

4

4 に答える 4

2

過去にやらなければならなかったことは、要素の構成に空のツールバーを含めることでした:

tbar:[]

次に (要素が完全にレンダリングされた後にのみ) .add() メソッドを使用してボタンを挿入します。

イベントの順序は毎回取得します。それに対処するには時間がかかります。

于 2009-02-06T19:27:37.053 に答える
1

パネルがレンダリングされた後にボタンを追加することを検討しましたか? たぶん次のようなものです:

myPanel.on('render', function() {
   this.getTopToolbar().insertButton(0, [...array of buttons...]);
}, true);
于 2009-01-27T04:50:04.980 に答える
1

空のパネルに追加するだけの場合

 myPanel.getTopToolbar().add(buttons etc);

または

 myPanel.getTopToolbar().addButton(..);

どちらでも動作するはずです。insertButton の目的は、空でないツールバー内にボタンを配置することです。

于 2008-11-25T02:16:56.267 に答える
0

CSS のみの解決策があるとは思いませんでした。

記録として、「this.tr.childNodes([0])」の存在をチェックするために、insertButton() 関数の Ext.Toolbar プロトタイプをオーバーライドする JavaScript をページに挿入し、デフォルトで addButton() を使用することになりました。それは存在しませんでした。

于 2008-12-04T18:43:15.387 に答える