0

PrototypeJSフレームワークを使用した非常にシンプルなWebページスピナーがあります。

フレームnav

Event.observe(
    'doit',
    'click',
    function(){
      parent.window.frames.cont.spinner.removeAttribute('style');
    },
    false);

フレームcont(これは内の最初の要素です<body>):

<div id="spinner" style="display: none;"></div>

CSS:

#spinner {
    width: 50px;
    height: 50px;
    position: fixed;
    top: 50%;
    left: 50%;
    background: url(spinner.gif) transparent no-repeat center;
    margin-left: -25px;
    margin-top: -25px;
    z-index: 2;
}

<div>非常に簡単に言えば、これはフレームの中央に固定された位置contであり、ブラウザーがページをロードするときに非表示になります(JS以外のブラウザーでの問題を回避するためにも)。navユーザーがフレーム内のボタンをクリックすると、style属性が削除され、次のページが引き継がれるまでユーザーにスピナーが表示されます。これはFirefoxで問題なく機能しますが、IE9は機能しません。これは私が彼らの標準的なF12インターフェースから見つけたものです:

  • IDを持つ要素は1つだけspinnerです。
  • parent.window.frames.cont.spinner.removeAttribute('style')または[コンソール]タブparent.window.frames.cont.document.getElementById("spinner").removeAttribute("style")で実行すると戻りますが、次の1つの要素が非表示になります。これは、識別可能な方法でHTMLタブに反映されません-非表示の要素にはまだがあります。truestyle="display: block;"

Prototypeのshow()を使用してみましたが、Firefoxでは機能しましたが、IE9では機能しませんでした...

4

2 に答える 2

1

style属性を削除する代わりに、「display」プロパティを「block」に設定するだけです。

document.getElementById("spinner").style.display = "block"
于 2012-09-06T19:57:26.990 に答える
1

クラスの追加/削除がはるかに簡単なのに、なぜスタイル属性を削除するのですか? とにかく、あなたがやろうとしているのが div の表示/非表示だけなら、「表示」スタイル プロパティだけを変更してみませんか?

于 2012-09-05T16:21:00.327 に答える