Fritz: document.getElementById("id").data für <object> möglich?

Hallo,

ein uraltes Problem, für das ich bisher nur eine IE-proprietäre Lösung gefungen habe:
Ich möchte bestimmten events unterschiedliche Sounds zuweisen.
mit bgsound und document.all.music.src = "click.wav"; kann man den IE dazu bringen.
Nun habe ich mich an einer standardkonformen Variante versucht, allerdings ohne Erfolg.
Hier eine Testdatei:
---------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Klick</title>

<script type="text/javascript">
function playsound(welcher) {
 document.getElementById("ton").data = welcher;
}
</script>

</head>

<body>
<object id="ton" data="click.wav" type="audio/x-wav" width="200" height="20"></object>
<p>welcher Ton?<br />

<a href="javascript:playsound('click.wav')">Ton 1</a><br />
<a href="javascript:playsound('reload2.wav')">Ton 2</a><br />
</p>
</body>
</html>
-------------------------------------------------------------

Warum führt document.getElementById("ton").data = welcher;
in diesem Kontext zu keiner Reaktion?
Sollte mein Vorhaben tatsächlich nicht realisierbar sein?

Gruß Fritz

--
ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
http://webdesign.weisshart.de/
  1. Hi,

    Warum führt document.getElementById("ton").data = welcher;
    in diesem Kontext zu keiner Reaktion?

    weil nur in wenigen, definierten Ausnahmefällen eine direkte Zuordnung zwischen HTML-Attribut und Objekt-Eigenschaft existiert. Arbeite mit setAttribute(). Und, tu Dir und Deinen Besuchern bitte den Gefallen, per se _keine_ Musik gestartet zu haben.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      weil nur in wenigen, definierten Ausnahmefällen eine direkte Zuordnung zwischen HTML-Attribut und Objekt-Eigenschaft existiert.

      Aber genau bei der Eigenschaft data des objekt Elements sollte das doch der Fall sein:
      http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=setAttribute()

      Arbeite mit setAttribute().

      Geht das auch mit ids? Hab leider keine vernünftige Referenz gefunden, aus der ich die Syntax entnehmen könnte.
      Und SELFHTML selbst rät mehr oder weniger dringend von der Verwendung ab ;-)

      Und, tu Dir und Deinen Besuchern bitte den Gefallen, per se _keine_ Musik gestartet zu haben.

      Ja, davon kannst Du ausgehen. Es handelt sich um kurze Signaltöne, die in einer barrierefreien Anwendung blinden Usern bestimmte Ereignisse ankündigen sollen.

      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/
    2. Hallo,
      hab's jetzt mal mit
      document.getElementById("ton").setAttribute("data","reload2.wav");
      versucht.
      Leider erfolglos :-(

      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/
    3. Hallo,

      weil nur in wenigen, definierten Ausnahmefällen eine direkte Zuordnung zwischen HTML-Attribut und Objekt-Eigenschaft existiert.

      Naja, schon, für data jedenfalls ist das der Fall.

      http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-9893177

      Arbeite mit setAttribute().

      Müsste aufs selbe herauskommen.

      Mathias

      1. Hi,

        weil nur in wenigen, definierten Ausnahmefällen eine direkte Zuordnung zwischen HTML-Attribut und Objekt-Eigenschaft existiert.
        Naja, schon, für data jedenfalls ist das der Fall.

        jupp. Wenn das Offensichtliche aber nicht funktioniert, erheben sich aus meinem Gedächtnis immer ganz gerne Erinnerungen an Bugs - nicht immer ganz korrekt, wie ich https://forum.selfhtml.org/?t=134289&m=870981 entnehme.

        Arbeite mit setAttribute().
        Müsste aufs selbe herauskommen.

        s/Müsste/Sollte/ - nur holt einen da leider allzu oft die Realität ein ;-)

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Warum führt document.getElementById("ton").data = welcher;
    in diesem Kontext zu keiner Reaktion?

    weil Gott uns Besuchern gnädig sein will.

    Tu der Welt bitte einen Gefallen und mach nicht noch so ne nervtötende Seite mit Besucher-Fernhalte-Alarmton.

    1. Hallo,

      Tu der Welt bitte einen Gefallen und mach nicht noch so ne nervtötende Seite mit Besucher-Fernhalte-Alarmton.

      Wie bitte kommst Du zu dieser Annahme?
      Es handelt sich um kurze Signaltöne, die in einer barrierefreien Anwendung blinden Usern bestimmte Ereignisse ankündigen sollen.

      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/
  3. Hallo,

    <object id="ton" data="click.wav" type="audio/x-wav" width="200" height="20"></object>

    document.getElementById("ton").data = welcher;
    Warum führt document.getElementById("ton").data = welcher;

    Wenn ich mich recht erinnere, ist das ein IE-Fehler (oder geht es auch um andere Browser). Es sollte funktionieren, wenn du das object-Element komplett neu mit JavaScript in das Dokument schreibst (z.B. ein div herum und darin mit innerHTML das object neu schreiben, nur mit anderer wav-Adresse).

    Im Übrigen würde ich versuchen, Flash zu benutzen, dann kannst du auch MP3-Dateien verwenden. Über die Schnittstelle zu Flash könnte man dann (zumindest in einigen Browsern, siehe LiveConnect) ein anderes MP3 laden.

    Mathias

    1. Hallo,

      Wenn ich mich recht erinnere, ist das ein IE-Fehler (oder geht es auch um andere Browser).

      Nein, es geht um Browser ;-)

      Es sollte funktionieren, wenn du das object-Element komplett neu mit JavaScript in das Dokument schreibst (z.B. ein div herum und darin mit innerHTML das object neu schreiben, nur mit anderer wav-Adresse).

      Bingo!
      Danke
      Gruß Fritz

      --
      ie:( fl:( br:? va:) ls:< fo:| rl:? ss:{ de:> js:| mo:} zu:}
      http://webdesign.weisshart.de/