Sprachgebrauch
Philip G.
- dhtml
0 ThomasJ0 regina0 Thomas Hieck
Hallo Forianer,
ich stolpere hier gelegentlich über die Formulierung, dass der IE auch Layer darstellen kann. Meint ihr
damit einen Bereich, der mit dem All-Objekt manipuliert wird oder meint ihr, dass der IE das wirkliche und
wahrhaftige Layer-Tag von Netscape interpretieren kann?
Ich habe nur eine 4er-Version von IE installiert und kann es deswegen nicht selbst ausprobieren, wie ihr
das in Bezug auf höhere IE-Versionen meint. Eine Recherche im Forum-Archiv hat keine Klarheit schaffen
können, weil u. a. viele interessant klingende Beiträge nicht mehr abrufbar sind ("File not found").
wissbegierige Grüße
Philip
Halo Philip
Der InternetExplorer kann mindestens das alles, was der Netscape auch kann. Das Problem ist aber, dass viele Dinge oft seperat programmiert werden müssen - Netscape und IE getrennt.
Der Netscape-Layer heisst im IE <div>, und kann auch mindestens das, was ein <layer> kann. Leider wirst du auf Probleme stoßen, was die Programmierung angeht - wenn Du ein eingefleischter Netscaper bist.
Soweit ich weiss, kann der Internet Explorer das <layer>-Tag nicht interpretieren, aber da bin ich mir nicht ganz sicher...
Dazu solltest Du evtl. mal nicht im Forum sondern im SelfHTML stöbern, oder dir z.B. diese Crossbrowser-DHTML-Referenz ansehen:
http://www.dansteinman.com/
Gruß
Thomas
Soweit ich weiss, kann der Internet Explorer das <layer>-Tag nicht interpretieren, aber da bin ich mir
»» nicht ganz sicher...
Hallo Thomas,
genau darum geht's mir, weil: Wenn ich für dynamische Zwecke abfrage
if (document.layers)
{ ...generiere einen Layer für NS... }
if (document.all)
{ ...generiere einen Div-Bereich für IE... }
möchte ich sicher sein, dass IE nicht plötzlich beides aufbaut. Lese ich dann ein paar Forumsbeiträge, wo
von "Layer" und "IE" die Rede ist, denke ich mir: Wie? Kann der IE jetzt auch das <layer>-Tag
interpretieren? Oder was?
Grüße
Philip
P.S.
Visit my homepage, Teacha :)
Hallo,
genau darum geht's mir, weil: Wenn ich für dynamische Zwecke abfrage
if (document.layers)
{ ...generiere einen Layer für NS... }
if (document.all)
{ ...generiere einen Div-Bereich für IE... }möchte ich sicher sein, dass IE nicht plötzlich beides aufbaut.
darfst Du, diese handelsübliche Abfrage funktioniert. (weil ich es so gerne erwähne:bis der NS6 ofiziell raus ist, dann müssen diese Weichen zumindet erweitert werden, weil er "weder noch" kann. (jaja, dafür eine Menge besseres mehr.....))
Übrigens schreibe ich "IEler" immer Div anstelle von Layer, es ist also nur eine Frage der Blickrichtung....
Chräcker
hi,
was deine abfrage betrifft: es gibt ja noch andere möglichkeiten, zu Prüfen, welcher Browser benutzt wird (z.B: über das Objekt "navigator").
Ausserdem kannst du doch statt
if () ...
if () ...
auch:
if () ...
else if() ...
schreiben - oder nicht? :)
Gruß
Thomas
Hi!
Der InternetExplorer kann mindestens das alles, was der Netscape auch kann.
Stimmt ja gar nicht... Du sagst ja selbst:
Soweit ich weiss, kann der Internet Explorer das <layer>-Tag nicht interpretieren...
*g*
Aber Scherz beiseite:
Der IE läßt das <layer> Tag völlig unbeachtet. Darum funktioniert auch diese häufig benutzte Konstruktion:
<div id="dynIE"><layer id="dynNN"></layer></div>
Nach der Browserweiche kann man im JS-Teil im Netscape den Layer verschieben, und im IE das DIV. Bzw., man kann den Inhalt des Layers mit document.layers.document.open / write / close dynamisch ändern und positionieren, daß geht auch im IE, da aber dann über das <div>, das Layer-Tag ist dabei für den IE quasi gar nicht vorhanden.
Hier mal ein Beispiel: So oder so ähnlich steht es übrgens auch in der Auslese, und ich glaube nicht, daß das Lesen einer DHTML Crossbrowser Referenz eine so gute Idee ist, die einen weiterbringt.
Grüße,
<img src="http://outpost.purespace.de/mozilla.jpg" alt="">
Bio
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>dyntest</title>
<style type="text/css">
p {font-family:arial,helvetica; color:#FF00FF; font-style:normal; font-weight:500; font-size:16px;}
</style>
<script language="JavaScript">
<!--
function start()
{
if ((navigator.appName == "Netscape") && (navigator.appVersion.substring(0,1) == "4"))
{
Objekt_Referenz="document.layers";
IE_Style="";
}
else
{
Objekt_Referenz="document.all";
IE_Style=".style";
}
}
function writefunct()
{
if (document.layers)
{
with (document.layers["dynNN"])
{
left = 200;
top = 100;
bgColor = "FFFF00";
visibility = 'show';
document.open();
document.write(text);
document.close();
}
}
else
{
with(document.all["dynIE"])
{
innerHTML=text;
style.setAttribute("position","absolute","true");
style.setAttribute("top","200px","true");
style.setAttribute("left","100px","true");
}
}
}
function movefunct()
{
loc(uli,200,200);
}
function loc(Objekt_Name, links, oben)
{
eval(Objekt_Referenz+'["'+Objekt_Name+'"]'+IE_Style+'.top = oben');
eval(Objekt_Referenz+'["'+Objekt_Name+'"]'+IE_Style+'.left = links');
}
start();
var uli="";
text="<p>Hier könnte ihr Text stehen!</p>";
window.setTimeout("writefunct();",1000);
window.setTimeout("movefunct();",3000);
//-->
</script>
</head>
<body text="#FF3300">
no text
<div id="dynIE"><layer id="dynNN"></layer></div>
</body>
</html>
Grüße
Hallo Philip,
der IE kann genauso wie der Netscape alles als Layer erkennen, was mit dem <DIV>-Tag definiert wurde.
Die Ansprache geht über eine ID: <DIV ID="Name_des_Layers">.
Wenn man diesen Layer manipulieren will, wird es schwieriger, weil man das im IE und Netscape anders lösen muß, aber da steht einiges zu drin im SELFHTML.
Gruß, Regina
Hallo Regina
[...]
Die Ansprache geht über eine ID: <DIV ID="Name_des_Layers">.
Wenn man diesen Layer manipulieren will, wird es schwieriger, weil man das im IE und Netscape anders lösen muß,
[...]
Ich hoffe ich werde jetzt nicht als besserwisserischer Klugscheißer abgestempelt, weil ich meinen Senf dazugebe ;-) , aber aufgrund eigener leidvoller Erfahrungen möchte ich Dein 'Beispiel' um einen klitzekleinen Hinweis erweitern.
<DIV ID="Name_des_Layers"> wird im Netscape (zumindest 4.5) nicht zu dem gewünschten Erfolg führen, da er sich weigert einen Underscore im ID-Bezeichner zu akzeptieren. Bei einem <div> mit '_' in der ID würde mein Netscape weder Styles(-Sheets) annehmen, noch irgendwelche DHTML-Geschichten darauf anwenden.
Also bitte nicht übelnehmen, aber ich möchte verhindern, daß jemand das im Archiv liest, und seinem <div> eine ID wie "mein_Div_1" gibt, und sich so wie ich wundert, warum der NN sich weigert irgendwas zu machen :-(
Gruß AlexBausW
Quellen: 1) Eigene Erfahrung (stundenlanges rumärgern, grrrrrrr :-(
2) <../../sfarchiv/2000_1/t10049.htm#a50717>
ich stolpere hier gelegentlich über die Formulierung, dass der IE auch Layer darstellen kann. Meint ihr
damit einen Bereich, der mit dem All-Objekt manipuliert wird oder meint ihr, dass der IE das wirkliche und
wahrhaftige Layer-Tag von Netscape interpretieren kann?
LAYER meint nicht den Tag <layer>. Es geht einfach nur um eine Technologie mehrere Ebenen (Layer)
im Dokument darzustellen. Ganz genauso wie in Grafikprogrammen. Mit welchem Tag der Layer
erzeugt wird, ist letztlcih egal. Allgemein ueblich ist im Moment <div>
Viele Gruesse,
Thomas Hieck