Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 15:41

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



IE 11 und DataView Problem

Discussion on IE 11 und DataView Problem within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
IE 11 und DataView Problem

Hallo zusammen,

ich habe da ein extrem komisches und vorallem mir unerklärliches Problem.
Nur ganz kurz zur Hintergrundgeschichte:
Wir sind in der Firma momentan dabei eine Web-Applikation in Javascript und HTML5 zu schreiben, welche Daten aus einer Datei liest und diese dann als Plotter darstellt. Die Daten in dieser Datei sind Binär gespeichert. Das heißt wir müssen mit so Sachen wie "getFloat32" in Javascript arbeiten.

Ich habe das Ganze lokal an meinem Rechner mit der aller neuesten Internet Explorer 11 Version probiert, da läuft es einwadfrei.

Wenn ich exakt denselben Code jedoch per Iframe in die Website laden lasse (auf einem Rechner, der extra nur fürs Testen bereit steht mit Windows 8 und nicht der aktuellsten IE11 Version, ist aber immernoch IE11), dann passieren komische Sachen.

Z.B. funktionierte diese Funktion nicht mehr richtig:
PHP Code:
function requestFile(path,ref_func)
{
    var 
xhr = new XMLHttpRequest();
    
xhr.open('GET'pathtrue);
    
xhr.responseType 'arraybuffer';
    
xhr.onload=ref_func;
    
xhr.send();

Onload wird irgendwie nie mehr gecallt. Also habe ich folgendes Work-Around gemacht:

PHP Code:
function requestFile(path,ref_func)
{
    var 
xhr = new XMLHttpRequest();
    
xhr.open('GET'pathtrue);
    
// new browsers (XMLHttpRequest2-compliant)
    
if ('responseType' in xhr) {
        
xhr.responseType 'arraybuffer';
    }
    
// old browsers (XMLHttpRequest-compliant)
    
else if ('overrideMimeType' in xhr) {
        
xhr.overrideMimeType('text/plain; charset=x-user-defined');
    }
    
// IE9 (Microsoft.XMLHTTP-compliant)
    
else {
        
xhr.setRequestHeader('Accept-Charset''x-user-defined');
    }
    
xhr.onload=ref_func;
    
xhr.onreadystatechange=ref_func;
    
xhr.send();

Und in ref_func auf den readyState geprüft. Das funktioniert jetzt alles einwandfrei.

Das nächste Problem, das ich jetzt habe, ist aber, dass die Antwort von meinem Request das Ergebnis nicht mehr in "this.response" speichert, sondern in "this.responseBody". "this.response" ist hingegen gar nicht in meinem this-Objekt vorhanden (habe es per debugger nachgeprüft).

Ein weiteres sehr komisches Problem besteht in dieser Funktion:
PHP Code:
function parseDataFile(data_array_buffer)
{
    var 
current_byte=0;
    var 
x_arr_graphs=new Array();
    var 
y_arr_graphs=new Array();
    var 
text_arr_graphs = new Array();
    var 
info_arr=new Array();
    
    var 
newView=new DataView(data_array_buffer);
//...

Dabei ist "data_array_buffer" die Antwort (also this.responseBody) vom Request. Und hier sagt er mir plötzlich "DataView is undefined". Genau so wie "data_array_buffer" undefined ist (also laut debugger), obwohl ich den 100% genau so auch lokal (nur hier nicht über Web-Server sondern über "file://...") teste und er da funktioniert. Der einzige Unterschied ist, dass ich es auf der Website per Iframe einbetten lasse (die Seite ist von anderen programmiert) und lokal nur die von mit erstellte Seite teste.

Wie gesagt lokal hat alles funktioniert. Jetzt schiebe ich die Dateien aber auf den Server, wo ein lokaler Web-Server läuft. Die Requests an den lokalen Web-Server auf dem Test-Rechner sehen demnach so aus:

"Http://localhost/subsite"

Da das Problem aber nur bei den HTML5-Komponenten auftritt, denke ich, dass die Konfigurationen im Allgemeinen passen, jede andere Seite funktioniert auch schon seit Jahren (also seit IE 7 oder so) und tut sie immernoch. Nur die neu gemachte Seite will nicht.

Mein kompletter (wichtiger) Code, der das iframe einbettet sieht so aus:

PHP Code:
<!DOCTYPE HTML>
<
html>
<
HEAD>
   <
TITLE>Service Analyze</TITLE>
    <
meta http-equiv="X-UA-Compatible" content="IE=edge" />
</
HEAD>
<
BODY TEXT="#000000" BGCOLOR="#A0A0A0" LINK="#FFFFA5" VLINK="#FFFFA5" ALINK="#FFFFA5" onUnload="if(this.onUnload != null) onUnload();">
...
<
iframe src="canvas.html" style="width:99%;height:300px">

</
iframe>
...
</
body>
</
HTML
Die "canvas.html" sieht so aus:
PHP Code:
<!DOCTYPE HTML>
<
html>
  <
head>
  <
meta http-equiv="X-UA-Compatible" content="IE=edge" />
  </
head>
  <
body id="body1" oncontextmenu="return false">
...
  </
body>
</
html
Wir haben auch schon testweise die Internet-Privacy im IE auf Minimum runtergeregelt, aber das half alles nichts.

Hat jemand eine Ahnung woran das liegen könnte? Ich bin leider gezwungen mit IE zu arbeiten und das ganze auch in IE einzubauen, FF o.ä. ist also keine Alternative.

Edit:
Nach weiteren Test habe ich herausgefunden, dass es entweder am Iframe liegt oder an dem Code, der das Iframe einbindet. Denn auf demselben Rechner mit derselben IE11 Version funktioniert es, wenn ich nur meinen Code teste, genau so wie bei mir lokal.

Unterstützt IE11 kein HTML5 für Iframes (halt ich für extrem unwahrscheinlich, deswegen werd ich das auch nicht groß testen)?
Kann man irgendwo (außerhalb vom head) das "<!DOCTYPE HTML>" überschreiben, sodass nicht mehr HTML5 genommen wird?
Ich versteh das nicht, kann es aber leider nicht einmal ansatzweise in anderen Browsern testen, da wir auf diesem Rechner nichts installieren dürfen und er außerdem kein Internet-Zugang hat.
Shadow992 is offline  
Old 10/06/2014, 17:57   #2
 
ThinSmoke's Avatar
 
elite*gold: 49
Join Date: Sep 2008
Posts: 906
Received Thanks: 600
Ich kann das Problem nicht ganz nachvollziehen, da ich das Problem bisher nicht hatte aber du kannst generell einfach mal verschiedene Browser auf durchgehen und testen, wie es sich da verhält.
Vielleicht reicht auch ein <meta http-equiv="x-ua-compatible" content="IE=9" > schon?
ThinSmoke is offline  
Thanks
1 User
Old 10/06/2014, 19:20   #3
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by ThinSmoke View Post
Ich kann das Problem nicht ganz nachvollziehen, da ich das Problem bisher nicht hatte aber du kannst generell einfach mal verschiedene Browser auf durchgehen und testen, wie es sich da verhält.
Vielleicht reicht auch ein <meta http-equiv="x-ua-compatible" content="IE=9" > schon?
Danke für den Vorschlag, aber der Test-Pc hat ja kein Internet-Zugang, von daher lässt sich das schwer mit der Seite testen.

Das mit dem meta hab ich ja eigentlich schon drin und wenn man nur die Seite ansich lädt (also den Inhalt des Iframes), dann klappt ja auch alles wie es soll. Wenn man die Seite jedoch eingebettet lädt, in die andere Seite, scheint es mir so als würde er plötzlich HTML5 nicht mehr kennen.
Shadow992 is offline  
Old 10/13/2014, 23:25   #4

 
los_wendos's Avatar
 
elite*gold: 0
The Black Market: 126/0/0
Join Date: May 2011
Posts: 1,052
Received Thanks: 192
Auch wenn vielleicht das Problem nicht mehr besteht, aber schau dir mal diese Disskusion an:
los_wendos is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Problem]Habe ein Problem und zwar spinnt mein VPC etwas(ohne Grund)?!
07/28/2011 - Metin2 Private Server - 10 Replies
Also wie schon gesagt meins Server spinnt wodurch kiks usw. kommen :( ich lade euch die Screens in den Anhang, mit der Hoffnung, dass ihr mir helfen könnt :) wäre echt sehr nice :)



All times are GMT +1. The time now is 15:41.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.