Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
ie7Welcher IE? In meinem IE8/7 funktioniert's dann.
<html>
<head>
<title>test</title>
</head>
<style type="text/css">
#test{
position: absolute;
top: 20px;
left: 50px;
width: 200px;
height: 100px;
border: 1px solid red;
}
</style>
<script type="text/javascript">
function out(txt, elem)
{
var nodeOut = document.getElementById("out");
var nodeElem = document.createElement(elem || "div");
var nodeText = document.createTextNode(txt);
nodeElem.appendChild(nodeText);
nodeOut.appendChild(nodeElem);
}
window.onload = function()
{
var test = document.getElementById("test");
test.onmouseover = function() { out("onmouseover"); }
test.onclick = function() { out("onclick"); }
}
</script>
<body>
<div id="test"></div>
<div id="out"></div>
</body>
</html>
habe ich noch nicht probiert3. wenn ich im IE8 auf IE7 im quirksmode stelle funktioniert's,
auch im echten IE7wenn ich aber auf IE7-Standard stelle funktioniert auch mein Beispiel nicht mehr... sehr seltsam -
das stand ja auch als abhilfe im MSDNist hald IE... abr wenn ich dem DIV "test" ein Hintergrundbild gebe, das total transparent ist (z.B. ein 1x1 gif) funktioniert's wieder...
var http = null;
var widthdiff=38;
var heightdiff=46;
var highlight="";
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
window.onload = function() {
if (http != null) {
http.open("GET", "xml/area.xml", true);
http.onreadystatechange = ausgeben;
http.send(null);
}
}
function ausgeben() {
if (http.readyState == 4) {
var selectionbox = document.getElementById("selectionbox");
var daten = http.responseXML;
var ergebnisse = daten.getElementsByTagName("area");
for (var i = 0; i < ergebnisse.length; i++) {
var kurzbezeichnung,xworldmap,xworldmap,xsize,detailansicht;
var irgendwas = ergebnisse[i];
for (var j = 0; j < irgendwas.childNodes.length; j++) {
with (irgendwas.childNodes[j]) {
if (nodeName == "xworldmap") {
xworldmap = firstChild.nodeValue;
xworldmap2 = (parseInt(xworldmap)+(widthdiff/2));
xworldmap +="px";
xworldmap2 +="px";
}
else if (nodeName == "yworldmap") {
yworldmap = firstChild.nodeValue;
yworldmap2 = (parseInt(yworldmap)+(heightdiff/2));
yworldmap +="px";
yworldmap2 +="px";
}
else if (nodeName == "xsize") {
xsize = (firstChild.nodeValue);
alert("xsize: " + xsize);
xsize2 = (parseInt(xsize)+(parseInt(widthdiff)));
ysize = (Math.round((xsize / 1.181)));
ysize2 = ((Math.round((xsize / 1.181)))+(parseInt(heightdiff)));
xsize+="px";
ysize+="px";
xsize2+="px";
ysize2+="px";
alert(xsize);
}
}
}
/* #################### Areas-erstellen #################### */
/* Hover Boxen */
var div = document.createElement("div");
div.id="area"+i;
div.className="areas";
div.index=i;
div.style.marginTop="150px";
/*div.innerHTML=("Area"+i);*/
div.style.marginLeft=xworldmap2;
div.style.marginTop=yworldmap2;
div.style.width=xsize;
div.style.height=ysize;
selectionbox.appendChild(div);
/* Animierte Boxen */
var auswahldiv = document.createElement("div");
auswahldiv.id="auswahldiv"+i;
auswahldiv.index=i;
/*auswahldiv.innerHTML=auswahldiv.id;*/
auswahldiv.className="auswahldiv";
auswahldiv.style.marginLeft=xworldmap;
auswahldiv.style.marginTop=yworldmap;
auswahldiv.style.width=xsize2;
auswahldiv.style.height=ysize2;
selectionbox.appendChild(auswahldiv);
/* #################### Area-Animation #################### */
$('#auswahldiv'+i).mouseover(function() {
$(this).animate({
width: "-="+widthdiff+"px",
height: "-="+heightdiff+"px",
opacity: 1,
marginTop: "+=23px",
marginLeft: "+=19px",
borderWidth: "1px"
}, 200 );
});
$('#auswahldiv'+i).mouseout(function() {
/*alert(this.id);*/
$(this).animate({
width: "+="+widthdiff+"px",
height: "+="+heightdiff+"px",
marginTop: "-=23px",
marginLeft: "-=19px",
opacity: 0.2,
borderWidth: "1px"
}, 200 );
this.innerHTML=("");
});
/* #################### Area-Action #################### */
$('#auswahldiv'+i).click(function() {
/*this.innerHTML=(this.style.width +"*" + this.style.height);*/
});
}
}
}
var http = null;
var widthdiff=38;
var heightdiff=46;
var highlight="";
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
window.onload = function() {
if (http != null) {
http.open("GET", "xml/area.xml", true);
http.onreadystatechange = ausgeben;
http.send(null);
}
}
entweder nutzt duDie xmlareas.js arbeitet jedoch mit einem window.onload:
...
Ich weiß nicht, welches Event ich nun nutzen kann, um die zweite XML-Datei einzubinden.
wozu brauchst du diesen code überhaupt 2 mal? schreib dir eine funktion die einen request durchführt und übergebe dieser deine callbackfunktion.Muss ich denn die Variablen verändern? Sprich http=null; in z.B: http2 umwandeln? Oder ist das ein festgelegter Begriff?
wozu brauchst du diesen code überhaupt 2 mal? schreib dir eine funktion die einen request durchführt und übergebe dieser deine callbackfunktion.
die problematik heisst hier funktionen.Leider wird in fast keinem Tutorial genau auf so ne Problematik eingegangen...
nein, du sollst eine funktion schreiben, die einen request sendet, und bei antwort des servers eine callbackfunktion aufruft(die du als parameter übergibst), in der du deine behandlung der antwort durchführst.D.h. ich soll ne Funktion schreiben, die nacheinander bei deXMLs abfragt und auswertet?
entwederWie kann ich den DOTs in der Detailansicht ne onClick-Funktion zuweisen und sie - bei bedarf - wieder ungültig machen?
var http = null;
var http2 = null;
var widthdiff=38;
var heightdiff=46;
var highlight="";
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
}
if (window.XMLHttpRequest) {
http2 = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http2 = new ActiveXObject("Microsoft.XMLHTTP");
}
window.onload = function() {
if (http != null) {
http.open("GET", "xml/area.xml", true);
http.onreadystatechange = ausgeben;
http.send(null);
}
if (http2 != null) {
http2.open("GET", "xml/dots.xml", true);
http2.onreadystatechange = ausgeben2;
http2.send(null);
}
}
function ausgeben() {
if (http.readyState == 4) {
var selectionbox = document.getElementById("selectionbox");
var daten = http.responseXML;
var ergebnisse = daten.getElementsByTagName("area");
for (var i = 0; i < ergebnisse.length; i++) {
var kurzbezeichnung,xworldmap,xworldmap,xsize,detailansicht;
var irgendwas = ergebnisse[i];
for (var j = 0; j < irgendwas.childNodes.length; j++) {
with (irgendwas.childNodes[j]) {
if (nodeName == "xworldmap") {
xworldmap = firstChild.nodeValue;
xworldmap2 = (parseInt(xworldmap)+(widthdiff/2));
xworldmap +="px";
xworldmap2 +="px";
}
else if (nodeName == "yworldmap") {
yworldmap = firstChild.nodeValue;
yworldmap2 = (parseInt(yworldmap)+(heightdiff/2));
yworldmap +="px";
yworldmap2 +="px";
}
else if (nodeName == "xsize") {
xsize = (firstChild.nodeValue);
/*alert("xsize: " + xsize);*/
xsize2 = (parseInt(xsize)+(parseInt(widthdiff)));
ysize = (Math.round((xsize / 1.181)));
ysize2 = ((Math.round((xsize / 1.181)))+(parseInt(heightdiff)));
xsize+="px";
ysize+="px";
xsize2+="px";
ysize2+="px";
}
}
}
/* #################### Areas-erstellen #################### */
/* Hover Boxen */
var div = document.createElement("div");
div.id="area"+i;
div.className="areas";
div.index=i;
div.style.marginTop="150px";
div.style.marginLeft=xworldmap2;
div.style.marginTop=yworldmap2;
div.style.width=xsize;
div.style.height=ysize;
selectionbox.appendChild(div);
/* Animierte Boxen */
var auswahldiv = document.createElement("div");
auswahldiv.id="auswahldiv"+i;
auswahldiv.index=i;
auswahldiv.className="auswahldiv";
auswahldiv.style.marginLeft=xworldmap;
auswahldiv.style.marginTop=yworldmap;
auswahldiv.style.width=xsize2;
auswahldiv.style.height=ysize2;
selectionbox.appendChild(auswahldiv);
/* #################### Area-Animation #################### */
$('#area'+i).mouseover(function() {
$("#auswahldiv"+this.index).animate({
width: "-="+widthdiff+"px",
height: "-="+heightdiff+"px",
opacity: 1,
marginTop: "+=23px",
marginLeft: "+=19px",
borderWidth: "1px"
}, 200 );
});
$('#area'+i).mouseout(function() {
/*alert(this.id);*/
$("#auswahldiv"+this.index).animate({
width: "+="+widthdiff+"px",
height: "+="+heightdiff+"px",
marginTop: "-=23px",
marginLeft: "-=19px",
opacity: 0.0,
borderWidth: "1px"
}, 200 );
this.innerHTML=("");
});
/* #################### Area-Action #################### */
$('#area'+i).click(function() {
/*ranzoom(this.id);*/
$(this.id).animate({
borderWidth: "10px"
}, 200 );
});
}
}
}
function ranzoom(id){
getElementById(id).style.border="";
}
/* #################### DOTs auf Worldmap anzeigen #################### */
function ausgeben2() {
if (http.readyState == 4) {
var selectionbox = document.getElementById("selectionbox");
var daten2 = http2.responseXML;
var ergebnisse2 = daten2.getElementsByTagName("dot");
for (var i = 0; i < ergebnisse2.length; i++) {
var land,park,mw,menge,xarea,yarea,xdetail,ydetail,color,mediafile,beschreibung;
var irgendwas2 = ergebnisse2[i];
for (var j = 0; j < irgendwas2.childNodes.length; j++) {
with (irgendwas2.childNodes[j]) {
if (nodeName == "land") {
land = firstChild.nodeValue;
}
else if (nodeName == "park") {
park = firstChild.nodeValue;
}
else if (nodeName == "mw") {
mw = firstChild.nodeValue;
}
else if (nodeName == "menge") {
menge = firstChild.nodeValue;
}
else if (nodeName == "xarea") {
xarea = firstChild.nodeValue;
}
else if (nodeName == "yarea") {
yarea = firstChild.nodeValue;
}
else if (nodeName == "xdetail") {
xdetail = firstChild.nodeValue;
}
else if (nodeName == "ydetail") {
ydetail = firstChild.nodeValue;
}
else if (nodeName == "color") {
color = firstChild.nodeValue;
if (color == "r") {
klasse = "dots";
}
else {klasse = "dotsmarker";}
}
else if (nodeName == "mediafile") {
mediafile = firstChild.nodeValue;
}
else if (nodeName == "beschreibung") {
beschreibung = firstChild.nodeValue;
}
}
}
var dotdiv = document.createElement("div");
dotdiv.id="dot"+i;
dotdiv.className=klasse;
dotdiv.index=i;
dotdiv.style.marginLeft = xarea+"px";
dotdiv.style.marginTop = yarea+"px";
dotdiv.park = park;
dotdiv.land = land;
dotdiv.mw = mw;
dotdiv.menge = menge;
dotdiv.beschreibung = beschreibung;
selectionbox.appendChild(dotdiv);
$('#dot'+i).mouseover(function() {
this.innerHTML=" "+this.park;
});
$('#dot'+i).mouseout(function() {
this.innerHTML="";
});
$('#dot'+i).click(function() {
alert(this.park +" ("+this.land+") " +" - " + this.menge + "*" + this.mw+"MW" + " " + this.beschreibung);
})
}
}
}
<?xml version="1.0"?>
<standorte>
<dot>
<land>Irland</land>
<park>Bindoo</park>
<mw>1,5</mw>
<menge>32</menge>
<xarea>233</xarea>
<yarea>140</yarea>
<xdetail>50</xdetail>
<ydetail>50</ydetail>
<color>r</color> <!-- r ist rot und g gruen -->
<mediafile>weringermeer.jpg</mediafile>
<beschreibung>Hier haben wir 10 1,5MW Anlagen repariert. Auf Grund des milden Klimas von +75C arbeiteten wir im Taucheranzug. Als positiver Nebeneffekt traten Verbrennungen 7. Grades an der Aussenhaut des Taucheranzugs auf.</beschreibung>
</dot>
.
.
.
</standorte>
function doRequest(url, cb)
{
var http = null;
if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
}
http.open("GET", url, true);
http.onreadystatechange = function()
{
if (http.readyState == 4 && (http.status == 200 || http.status == 2)) {
cb(http.responseXML);
}
};
http.send(null);
}
window.onload = function() {
doRequest("xml/area.xml", ausgeben);
doRequest("xml/area.xml", ausgeben2);
}
function ausgeben(daten) {
var selectionbox = document.getElementById("selectionbox");
var ergebnisse = daten.getElementsByTagName("area");
...
}
function ausgeben2(daten) {
var selectionbox = document.getElementById("selectionbox");
var ergebnisse = daten.getElementsByTagName("dot");
...
}