Meta-Tags wollen nicht erkannt werden
das Ich
- javascript
Hallo,
folgendes: Ich habe ein Dokument, das etwa das folgende beinhalten
wird (oder auch nicht):
<html>
<head>
<title>....</title>
<script type="text/javascript" src="/librarys/extra/check.js"></script>
<meta name="bla.infoframe" content="no">
<meta name="bla.goto" content="/images/gd/indesign.php?url=%url">
<meta name="bla.specialcss" content="/images/gd/dokumentation.css">
<!-----------------------------------------------------
SveniWebserver4 Extrasites Specialcss-Generator
manipulated area start
------------------------------------------------------>
<link rel="stylesheet" type="text/css" href="/images/gd/dokumentation.css">
<meta name="bla.disable" content="yes">
<!-----------------------------------------------------
manipulated area end
------------------------------------------------------>
</head>
...
So, nun wird die JavaScript-Datei aufgerufen:
var setMetas = document.getElementsByTagName('meta');
var goon = true; // go on
alert(setMetas.length);
for(var meta in setMetas)
{
name = meta.getAttribute("name");
content = meta.getAttribute("content");
alert("name =\t"+name+"\ncontent =\t"+content);
if(name == "sbla.disable" && content == "yes")
{
goon = false;
alert("tada");
break;
}
}
alert("hola");
if(top == self && location.protocol == "http:" && goon) {
top.location.replace("/librarys/extra/?title="
+ escape(document.title) +
"&src=" + escape(self.location.href+self.location.search));
}
die ganzen Meta's dienen mir im Vorfeld erst einmal zur Überprüfung.
Das Problem ist folgendes: Weder Opera, noch IE, noch Mozilla wollen
die Variable setMetas mit document.getElementsByTagName('meta') füllen.
Wieso nicht?
Gruß,
das Ich
Hi,
Das Problem ist folgendes: Weder Opera, noch IE, noch Mozilla wollen
die Variable setMetas mit document.getElementsByTagName('meta') füllen.
was meinst Du, warum es getElement_s_ heißt? Da fehlt doch noch was, oder?
freundliche Grüße
Ingo
Moin!
Hi,
Das Problem ist folgendes: Weder Opera, noch IE, noch Mozilla wollen
die Variable setMetas mit document.getElementsByTagName('meta') füllen.was meinst Du, warum es getElement_s_ heißt? Da fehlt doch noch was, oder?
Was denn? Auf die gefundenen getElements wird mit Array-Methoden zugegriffen - setMetas.length ist eindeutig, oder?
- Sven Rautenberg
Hi,
Das Problem ist folgendes: Weder Opera, noch IE, noch Mozilla wollen
die Variable setMetas mit document.getElementsByTagName('meta') füllen.was meinst Du, warum es getElement_s_ heißt? Da fehlt doch noch was, oder?
du meinst, sowas wie "[0]"? document.getElementsByTagName('irgendwas') gibt afaik ein Array wieder. Und sofern ich weiß, bin ich auch nicht gezwungen, dies gleich in einem Abwasch anzusprechen oder sowas.
Was denn? Auf die gefundenen getElements wird mit Array-Methoden zugegriffen - setMetas.length ist eindeutig, oder?
genau: Das Ding ist ja afaik ein array. oder? setMetas.length gibt ja nämlich 0 wieder :| - und die Schleife wird daraufhin nicht einmal aufgerufen.
wieso?
Gruß,
euer Ich
Hola,
alert("hola");
var setMetas = document.getElementsByTagName('meta');
var goon = true; // go on
alert(setMetas);
alert(setMetas.length);
for(var ThisMeta in setMetas)
{
name = ThisMeta.getAttribute("name");
content = ThisMeta.getAttribute("content");
alert("name =\t"+name+"\ncontent =\t"+content);
....
alert(setMetas) gibt mir unter Opera "object NodeList" aus - scheinbar gibt document.getElementsByTagName("meta") doch kein array aus!?
Wie ist das jetzt? Und wie bekomme ich die gesetzten Meta-Tags raus?
Gruß,
euer Ich
Hi,
<html>
<head>
<title>....</title>
<script type="text/javascript" src="/librarys/extra/check.js"></script>
Hier wird also das Script ausgeführt:
var setMetas = document.getElementsByTagName('meta');
Wie viele meta-Elemente existieren zu diesem Zeitpunkt?
cu,
Andreas
Hallo,
<script type="text/javascript" src="/librarys/extra/check.js"></script>
Hier wird also das Script ausgeführt:
var setMetas = document.getElementsByTagName('meta');
Wie viele meta-Elemente existieren zu diesem Zeitpunkt?
auuuua! stimmmt! 0! Genau!
Ohhhhh--- und jetzt bin ich schon seit mehr als 19 Stunden damit beschäftigt, herauszufinden was da los ist....
hm - tja, ich würde den <script> sehr ungerne verschieben - ob es was bringt, wenn der script z.b. so aussieht:
setTimeout("bla()", 1000);
function bla()
{
...
}
? Muss ich gleich mal testen.
das Ich
pS: Es soll im HTML-Dokument möglichst wenig von dem script zu spüren sein. deswegen will ich auch keinen eventhandler in das body stecken
...
genau, das ist es! Eventhandler überwachen! :)
document.getElementByTagName("body")[0].onLoad = bla;
function bla()
{
...
}
8]
Moin,
ich danke MudGuard für seine Hilfe; jetzt funktioniert es:
window.onload = check;
function check()
{
var setMetas = document.getElementsByTagName("meta");
var goon = true; // go on
for(var x = 0; x <= setMetas.length; x++)
{
ThisMeta = setMetas[x];
name = ThisMeta.getAttribute("name");
content = ThisMeta.getAttribute("content");
// alert("name =\t"+name+"\ncontent =\t"+content);
if(name == "sveniwebserver4.disable" && content == "yes")
{
goon = false;
break;
}
}
if(top == self && location.protocol == "http:" && goon)
top.location.replace("/librarys/extra/?title="
+ escape(document.title) +
"&src=" + escape(self.location.href+self.location.search));
}
:)
gruß,
euer ich
Hi,
ich danke MudGuard für seine Hilfe; jetzt funktioniert es:
Auch wenn mein Hinweis vielleicht der war, der zur Lösung führte - bedanken solltest Du Dich bei allen, die versucht haben, zu helfen.
cu,
Andreas
Hola,
ich danke MudGuard für seine Hilfe; jetzt funktioniert es:
Auch wenn mein Hinweis vielleicht der war, der zur Lösung führte - bedanken solltest Du Dich bei allen, die versucht haben, zu helfen.
Ich bin eigentlich immer jedem dankbar, der z.B. auf solche Threads antwortet; sprich das gehört zu meinen Grundbedingungen einer erfolgreichen Kommunikation hier.
oder so ähnlich ;-)
euer ich
PS: "der/das ich" oder "hola" klingt irgendwie fürchterlich fürchterlich als name... - änder();