Warum nicht diese JavaScript (mit Dokument.öffnen und Dokument.schreib -) Arbeit im Internet Explorer oder Opera?

Ich brauche dringend etwas Hilfe dabei.

Habe ich einen <script>, das eng mit den parallelen, und reproduziert das problem, eine andere, komplexere <script> das habe ich an anderer Stelle geschrieben.

Hier ist, was es tut:

  • schafft eine <iframe> und fügt in in ein <div> auf der Seite
  • erstellt und fügt ein Dokument zu, dass <iframe> mit einer <script> definiert ein paar Funktionen (einschließlich einer callback-Funktion und eine Funktion, lädt eine externe <script> mit AJAX)
  • letztere externen Skript ist nur ein Aufruf an die callback-Funktion, die eine Funktion aufruft, die ein Dokument erstellt und fügt es an die <iframe> es ist in; dies sollte effektiv überschreiben Sie die <script>

Den drei Dateien beteiligt sind:

Das ganze funktioniert im Firefox, Safari und Chrome. Wo bricht es im Internet Explorer und Opera. Was passiert, ist, dass die render () - Funktion in main.js wird ausgeführt, und alle drei Alarme ausgelöst werden, aber das Dokument, in dem <iframe> wird nicht überschrieben. Ich kann nicht sagen, was für ein Dokument erstellt wird, oder schriftlich, oder, wenn man überhaupt ist.

Wenn ich mit debug-code (wie Konsole.log(Dokument)) am Anfang der render () - Funktion, die das arbeiten Browser scheinen, um einen Griff auf den vorhandenen <iframe> Dokument und die Liste der Eigenschaften unten aufgeführt. Internet Explorer erscheint auch ein Dokument finden, irgendwie. Ich kann einfach nicht sagen, warum es nicht lassen mich zu überschreiben.

Könnte es ein Problem sein, der Umfang? Vielleicht bin ich mit dem Dokument.write(), document.open() oder document.close () - Methoden falsch, und Firefox und einigen anderen Browsern sind nur lässt mich Weg mit ihm?

Einen möglichen Anhaltspunkt: wenn ich den Mut der render () - Funktion aus (D. H., nur setzen Sie Sie nach Last() in main.js), dies funktioniert gut. Das lässt mich vermuten, dass es nicht, wie ich mit Dokument.open(), etc., aber irgendwie durch die Zeit, die der callback() Funktion ausgeführt wird, wird das document-Objekt ist nicht vorhanden, oder mehr Umfang, oder so ähnlich.

Das hat mir Total überfragt, und es ist für ein sehr wichtiges Projekt mit einer drohenden Frist. Ich bin nicht über einen hack oder workaround, wenn es bekommt, mich aus diesem Stau. Jede Hilfe oder Einsicht wäre SEHR dankbar!

Konsole.log()'s Liste der Dokument-Eigenschaften:

ATTRIBUTE_NODE: 2 
CDATA_SECTION_NODE: 4 
COMMENT_NODE: 8 
DOCUMENT_FRAGMENT_NODE: 11 
DOCUMENT_NODE: 9 
DOCUMENT_POSITION_CONTAINED_BY: 16 
DOCUMENT_POSITION_CONTAINS: 8 
DOCUMENT_POSITION_DISCONNECTED: 1 
DOCUMENT_POSITION_FOLLOWING: 4 
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32 
DOCUMENT_POSITION_PRECEDING: 2 
DOCUMENT_TYPE_NODE: 10 
ELEMENT_NODE: 1 
ENTITY_NODE: 6 
ENTITY_REFERENCE_NODE: 5 
NOTATION_NODE: 12 
PROCESSING_INSTRUCTION_NODE: 7 
TEXT_NODE: 3 
URL: "http://localhost/projects/test/ajax_loader/document_write/index.html" 
activeElement: HTMLBodyElement 
Sie addEventListener (): function addEventListener() { 
adoptNode: Funktion adoptNode() { 
alinkColor: "" 
alle: HTMLCollection 
Anker: HTMLCollection 
appendChild: Funktion appendChild() { 
applets: HTMLCollection 
Attribute: null 
baseURI: "http://localhost/projects/test/ajax_loader/document_write/index.html" 
bgColor: "" 
Körper: HTMLBodyElement 
captureEvents: Funktion captureEvents() { 
characterSet: "UTF-8" 
charset: "UTF-8" 
childNodes: NodeList 
klar: function clear() { 
cloneNode: Funktion cloneNode() { 
in der Nähe: function close() { 
compareDocumentPosition: Funktion compareDocumentPosition() { 
compatMode: "BackCompat" 
cookie: "__gads=ID=62bb88ab20ac9451:T=1256683145:S=ALNI_Mbso-nFjAvRzYhCSwhiuaDh84G8CA" 
createAttribute: Funktion createAttribute() { 
createAttributeNS: Funktion createAttributeNS() { 
createCDATASection: Funktion createCDATASection() { 
createComment: Funktion createComment() { 
createDocumentFragment: Funktion createDocumentFragment() { 
createElement: Funktion createElement() { 
createElementNS: Funktion createElementNS() { 
createEntityReference: Funktion createEntityReference() { 
createEvent: function createEvent() { 
createExpression: Funktion createExpression() { 
createNSResolver: Funktion createNSResolver() { 
createNodeIterator: Funktion createNodeIterator() { 
createProcessingInstruction: Funktion createProcessingInstruction() { 
createRange: Funktion createRange() { 
createTextNode: Funktion createTextNode() { 
createTreeWalker: Funktion createTreeWalker() { 
defaultCharset: iso-8859-1" 
Standardansicht: DOMWindow 
designMode: "off" 
re: "" 
dispatchEvent: function dispatchEvent() { 
doctype: null 
documentElement: HTMLHtmlElement 
documentURI: "http://localhost/projects/test/ajax_loader/document_write/index.html" 
domain: "localhost" 
elementFromPoint: Funktion elementFromPoint() { 
bettet: HTMLCollection 
bewerten: function auswerten() { 
execCommand: Funktion execCommand() { 
fgColor: "" 
firstChild: HTMLHtmlElement 
Formen: HTMLCollection 
getCSSCanvasContext: Funktion getCSSCanvasContext() { 
getElementById: function getElementById() { 
getElementsByClassName: Funktion getElementsByClassName() { 
getElementsByName: Funktion getElementsByName() { 
getElementsByTagName: function getElementsByTagName() { 
getElementsByTagNameNS: Funktion getElementsByTagNameNS() { 
getOverrideStyle: Funktion getOverrideStyle() { 
getSelection: Funktion getSelection() { 
hasAttributes: Funktion hasAttributes() { 
hasChildNodes: Funktion hasChildNodes() { 
hat_fokus: Funktion hat_fokus() { 
Höhe: 150 
Bilder: HTMLCollection 
Umsetzung: DOMImplementation 
importNode: Funktion importNode() { 
inputEncoding: "UTF-8" 
insertBefore: function insertBefore() { 
isDefaultNamespace: Funktion isDefaultNamespace() { 
isEqualNode: Funktion isEqualNode() { 
isSameNode: Funktion isSameNode() { 
isSupported: Funktion isSupported() { 
jQuery1258269389622: 2 
lastChild: HTMLHtmlElement 
lastModified: "" 
linkColor: "" 
links: HTMLCollection 
localName: null 
Ort: Lage 
lookupNamespaceURI: Funktion lookupNamespaceURI() { 
lookupPrefix: Funktion lookupPrefix() { 
namespaceURI: null 
nextSibling: null 
nodeName: "#document" 
nodeType: 9 
nodeValue: null 
normalisieren: Funktion normalize() { 
öffnen: function open() { 
ownerDocument: null 
parentElement: null 
parentNode: null 
plugins: HTMLCollection 
preferredStylesheetSet: null 
Präfix: null 
previousSibling: null 
queryCommandEnabled: Funktion queryCommandEnabled() { 
queryCommandIndeterm: Funktion queryCommandIndeterm() { 
queryCommandState: Funktion queryCommandState() { 
queryCommandSupported: Funktion queryCommandSupported() { 
queryCommandValue: Funktion queryCommandValue() { 
querySelector: Funktion querySelector() { 
querySelectorAll: Funktion querySelectorAll() { 
readyState: "complete" 
referrer: "http://localhost/projects/test/ajax_loader/document_write/index.html" 
releaseEvents: Funktion releaseEvents() { 
removeChild: Funktion removeChild() { 
removeEventListener: function removeEventListener() { 
replaceChild: function replaceChild() { 
Skripte: HTMLCollection 
selectedStylesheetSet: null 
styleSheets: StyleSheetList 
textContent: null 
Titel: "Seite" 
vlinkColor: "" 
Breite: 300 
schreiben: function schreiben() { 
writeln: function writeln() { 
xmlEncoding: null 
xmlStandalone: false 
xmlVersion: null
  • Sind Euch irgendwelche Fehler?
  • Hi meder - ich bin nicht zu sehen, eventuelle Fehler im Internet Explorer oder Opera. Beide zeigen einfach nur die alert()s in der render () - Funktion, aber nicht alles mit dem Dokument in der <iframe>.
  • werfen Sie einen Blick auf: stackoverflow.com/questions/12467151/...
InformationsquelleAutor Bungle | 2009-11-15
Schreibe einen Kommentar