3

簡単な設定があります。画像をクリックすると、mp3ファイルが再生されます。

私が覚えているほとんどの情報源から、画像をクリックすると自動的に開始するオーディオプレーヤーを埋め込むことができるダミーのスパン要素を作成することをお勧めします。

このようなアクションを実行する関数は次のとおりです。

<script language="javascript" type="text/javascript">
  function playSound(soundfile,evt) {
    document.getElementById("dummy").innerHTML = "<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
    evt.preventDefault(); // this doesnt do anything
    return false; // neither does this
  }
</script>

画像のHTMLコード:

<a href="#" onclick="playSound('aud.mp3'); return false;">

ページの一番下に「ダミー」スパンを配置しました。画像をクリックすると音が鳴りますが、非常に厄介なのは、ページがこのスパン要素の位置まで自動的にスクロールダウンすることです。

IEとFirefoxでこれを試しました。この問題は発生しません。これが発生するのは、最新バージョンのChrome(24.0.1312.56 m)のみです。私はこれを2台のコンピューターで試しました。

誰かが何が起こっているのか知っていますか?この厄介な巻物をどうやって取り除くのですか?

は役に立ちません(どちらでもありません。2番目のものは、属性return false;を介して一番上にスクロールするだけです)。#もしませんpreventDefault()href属性をから#に変更することもありませんjavascript:void(0)

4

2 に答える 2

5

spanダミー要素を使用する代わりにplay()、Javascript にaudioおよびvideoDOM 要素用のメソッドがあることがわかったので、コードを書き直して Chrome のバグを回避しました。明らかに、IE8 以前のバージョンではサポートされていませんが、価値のあるトレードオフです。

<audio id="aud">
    <source src="aud.ogg" type="audio/ogg" />
    <source src="aud.mp3" type="audio/mpeg" />
</audio>
<a href="#" onClick="document.getElementById('aud').play(); return false;">
  Link
</a>
于 2013-02-02T01:54:55.303 に答える