• ベストアンサー

JavaScriptとアニメーションgifの関係(?)

初心者なので予めご了承下さい(笑)。 function OpenWin(){ win=window.open("○○.htm","new","scrollbars=yes"); って言うのをコピってきて、リンク先をスクロールバーのみのウィンドウで開かせる(?)ってのを作ってみました。 結果正常に窓は開くのですが、なぜがリンク元のページに張られている アニメーションgifが新しい窓を開いた瞬間に止まってしまうのです。 これは仕方ないことなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • tasahamu
  • ベストアンサー率50% (3/6)
回答No.2

私の環境で確認してみた所... 普通に JavaScript で window.open() を使用する限り、 「リンク元に張られているアニメーションgifが止まってしまう」 事はなかったです。 あくまでも私の推測ですが... こんな感じ <A HREF="javascript:OpenWin()"> で、 リンクを張って使用されているのなら、確かに止まると思います。 そこで、この場合と仮定して以下に説明します。 あくまでも私の想像なのですが... 本来、HREF="" は次のリンク先を指定する所なので、 ブラウザ内の処理としては既に元のページは終了しており、 アニメーションgifも止まるのではないでしょうか。 そこで、いくつか対策を作ってみました。 私の環境(IE4、IE5、NN4.7)で確認した限りでは、 どれもアニメーションgifは止まりませんでした。 <A HREF="javascript:OpenWin();location.reload()"> <A HREF="javascript:OpenWin();history.go(0)"> IE3 や NN2 でもきっとOKなのではないでしょうか? しかし、onload 先が指定されているページの場合は、 内容によっては無限ループになってしまいます。 <A HREF="#" ONCLICK="OpenWin()"> これが一番良いのではないでしょうか? でも古いブラウザでOKかどうかは調べていません。 これを読んでる皆さん!!どうでしょう... <A ONCLICK="OpenWin()"> これは NN では動作しない上、オススメしません。

sumichan7878
質問者

お礼

ご回答ありがとうございました! 確かに私もwindow.open()ならアニメgifは止まりませんでした。 しかし、<A HREF="javascript:OpenWin()">は止まります。 そこでご回答の通りやってみました。 <A HREF="#" ONCLICK="OpenWin()">の一番下の出来ました! 上の二つは、理想通りに動くことは動くのですが、なぜか砂時計が出続けます。 何はともあれこれで理想通りになりました。 本当にありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Atalia
  • ベストアンサー率38% (48/124)
回答No.1

新しい窓が開いたことで、古い窓がアクティブウィンドウじゃなくなってアニメーションが停止した(アニメーションの書き換えが行われなくなった)のだと思います。 仕方ない事と言えば仕方ないことですね。 アクティブウインドウじゃなくても書き換えを続けるようにすれば...っちゅーのはWeb側から出来ることとは思えませんし。 質問とは関係ないですけど、(笑)を付ける場所は考えた方がいいですよ。 適当に付けてるといらぬトラブルを招きますから...。 「初心者」と「ガキ」は違いますからね。

sumichan7878
質問者

お礼

ご回答ありがとうございます。 やっぱり仕方ないことでしたか。 目をつむるしか方法はなさそうですね。 (笑)に関して・・・すいません。こういうことまでアドバイスいただいて。 確かに適当につけてました。 自分から質問しておいて(笑)はないですよね。大変失礼致しました。 また何かありましたらよろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A