alkasser: HTML-Tags in Javascript

Hallo leute,

ich möchte gerne eine Browserabfrage in einer HTML-Tags einführen, oder ein HTML-Tags in einer Javascript-code schreiben. was ich damit errechen möchte ist folgendes:

wenn ich beispielsweise IE verwende, dann soll der Body tag so aussehen
<body id="body" onLoad="updateTopnav(); initReorderlists();" ondragend="divFollow.style.left=-1000; divFollow.style.top=-1000;">

Bei Mozilla soll der Body-Tag wie folgt aussehen
<body onLoad="updateTopnav();" >

hänge leider fest, obwohl es sowas für die anderen vielleicht kinderspiel wäre.

Ich danke jeder Poster vorab.

Alkasser

  1. @@alkasser:

    nuqneH

    wenn ich beispielsweise IE verwende, dann soll der Body tag so aussehen
    <body id="body" onLoad="updateTopnav(); initReorderlists();" ondragend="divFollow.style.left=-1000; divFollow.style.top=-1000;">

    Bei Mozilla soll der Body-Tag wie folgt aussehen
    <body onLoad="updateTopnav();" >

    Und bei anderen Browsern?

    Und vor allem: Was willst du wirklich? Also was ist das Problem, zu dem du denkst, dies sei die Lösung?

    hänge leider fest, obwohl es sowas für die anderen vielleicht kinderspiel wäre.

    „Conditional comment“ wäre dein Suchbegriff.

    Und mit JavaScript hat das Ganze nichts zu tun.

    Qapla'

    --
    Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    1. Hallo,

      das Problem ist folgendes:

      ich habe zwei Drag&Drop file mit verschiedenen funktionen, einer für IE und der andere für Mozilla. Mein Ziel ist, wenn der User IE verwendet, dann wird das entsprechende Drag and Drop script verwendet und falls Mozilla halt der andere. Es ist wichtig, dass ich beide Scripte habe, also falls jemand mir sagt, "verwende doch ein Drag and Drop für beide Browsern".

      Also kann man eine Browseranfrage innerhalb eine HTML-Tags verwenden? ich denke eher nicht, deswegen habe ich an Javascript gedacht, sodass man irgendwie
      document.write("<body ....>"). aber ganz sicher bin ich nicht

      danke vorab

      alkasser

      1. Es ist wichtig, dass ich beide Scripte habe, also falls jemand mir sagt, "verwende doch ein Drag and Drop für beide Browsern".

        Warum? Es gibt genug Drag-&-Drop-Scripte die im Firefox und Internet Explorer funktionieren - ja sogar in Safari, Opera, K-Meleon oder auch in Kazehakase (wenn das Ding überhaupt jemand verwendet :p)

        Also kann man eine Browseranfrage innerhalb eine HTML-Tags verwenden?

        Nein HTML kennt keine "abfragen" oder sonstwas.

        Du kannst dich lediglich mit Conditional Comments anfreunden um den IN dazu zu bringen, einen Kommentar als HTML zu interpretieren.

      2. @@alkasser:

        nuqneH

        Also kann man eine Browseranfrage innerhalb eine HTML-Tags verwenden?

        Häh?? Ich hatte dir bereits einen Suchbegriff genannt. Und ChrisB einen anderen, wobei der von ihm genannte Weg ist für dich der bessere ist. Falls du wirklich eine Browserweiche brauchst, was auch ich nicht glaube.

        Qapla'

        --
        Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      3. Hi,

        ich habe zwei Drag&Drop file mit verschiedenen funktionen, einer für IE und der andere für Mozilla.

        Verschieden in dem, was der Nutzer des Browsers damit machen kann - oder nur verschiedenen in der Programmierung, um Browser-Inkompabilitäten auszugleichen?

        Wenn letzteres, dann ist dein Script vermutlich schon ziemlich alt; denn so extrem aufwendig ist Drag&Drop heutzutage browserübergreifend nicht mehr zu implementieren, dass eine Aufsplittung in zwei einzelne Scripte wirklich sinnvoll wäre.

        Es ist wichtig, dass ich beide Scripte habe, also falls jemand mir sagt, "verwende doch ein Drag and Drop für beide Browsern".

        Gerade das wird bezweifelt.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
      4. Also hier muss ich mal eingeifen.
        alkasser hat eine Frage und die gilt es zu beantworten. Wenn jemand im Sommer einen Pullover anziehen möchte, da kann man auch fragen wieso? Aber vielleicht hat dieser jemand ja einen Grund an den niemand denkt, z.B. in einer Halle Schlittschuh fahren. Und wenn er keinen Grund hat, geht es eventuell um Erfahrung.

        @ alkasser:

        du brauchst nur das <body></body> Tag ohne Attribute. Dieses Element darf nur einmal im HTML Code vorkommen ist somit eindeutig. Im css kannst du durch Browser hacks andere Eigenschaften zuweisen.

        Was eine Browser Weiche in Javascript angeht schreibst du in den <head> bereich folgendes:
        window.onload = function()
        {
           deinen Code
        }

        Diese Funktion wird ausgeführt sobald die Seite fertig geladen wurde. Da kannst du die Browser dann unterscheiden. Wie du genau Browser unterscheidest findest du in jedem zweitklassigem Javascript Forum *grins*. Wenn du 2 verschiedene Scripte einbinden willst kannst du beide Scripte einfach im <head> Bereich einbinden, solange der Funktions-name nicht gleich ist. Sollte der Funktionsname gleich sein, hast du die MAcht ihn zu ändern. Somit sind beide Scripte eingebunden, aber du sprichst nach der Browserweiche einfach die Funktion an die du brauchst.

        Hoffe das ich etwas Licht ins dunkle bringen konnte :).
        Viel Spaß noch
        Gruß
        T-Rex

        1. @@T-Rex:

          nuqneH

          alkasser hat eine Frage und die gilt es zu beantworten.

          Ganau das haben ChrisB und ich getan.

          Qapla'

          --
          Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
  2. Hi,

    ich möchte gerne eine Browserabfrage in einer HTML-Tags einführen, oder ein HTML-Tags in einer Javascript-code schreiben. was ich damit errechen möchte ist folgendes:

    Der Tag, der Code.

    wenn ich beispielsweise IE verwende, dann soll der Body tag so aussehen
    <body id="body" onLoad="updateTopnav(); initReorderlists();" ondragend="divFollow.style.left=-1000; divFollow.style.top=-1000;">

    Bei Mozilla soll der Body-Tag wie folgt aussehen
    <body onLoad="updateTopnav();" >

    *Warum* willst du das?

    Erst mal muss der öffnende BODY-Tag nicht so aussehen - Eventhandler lassen sich auch im Script unterbringen, window.onload=funktionsreferenz;

    Und zweitens willst du offenbar Browser-Sniffing betreiben.
    Das ist aber selten eine gute Idee - man sollte Scriptcode nach den Fähigkeiten eines Browsers zur Ausführung bringen, nicht nach seinem Namen.

    Conditional Compilation kann allerdings eine einfache Alternative sein, wenn man aus irgendeinem Grund im Script den IE von anderen Browsern unterscheiden möchte.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  3. Mahlzeit alkasser,

    wenn ich beispielsweise IE verwende,

    Welchen IE? Welche Version? Woran soll werauchimmer erkennen, um welchen Browser es sich handelt (es geben sich nämlich diverse Browser auch als IE aus etc.)?

    dann soll der Body tag so aussehen
    <body id="body" onLoad="updateTopnav(); initReorderlists();" ondragend="divFollow.style.left=-1000; divFollow.style.top=-1000;">

    Warum soll er so aussehen?

    1.) Das Attribut "id" ist überflüssig - <http://de.selfhtml.org/navigation/html.htm#grundgeruest@title=es gibt nur genau einen <body> pro validem HTML-Dokument>.

    2.) Das Attribut "onload" solltest Du genau wie *ALLE* Attribute im Hinblick auf jetzige oder spätere Kompatibilität mit XHTML immer *klein* schreiben. Insbesondere das Attribut "onload" allerdings sollte im Hinblick auf "unobtrusive Javascript" nicht genutzt werden - eine sinnvollere Alternative ist das bereits genannte "window.onload".

    3.) Es existiert kein Attribut namens "ondragend", somit ist Dein HTML-Code *nicht valide*: überprüfe das bitte.

    4.) Deine Style-Angaben sind fehlerhaft - <http://de.selfhtml.org/css/formate/wertzuweisung.htm#numerische@title=es fehlt die Maßeinheit> ... oder meinst Du, der Browser errät automagisch, ob Du Pixel, Ellen oder Schweinehälftenlängen meinst?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|