2009-05-29 6 views
3

Ich möchte externe 3rd-Party-Skripts (auf separaten Domänen) zwingen, meine eigene benutzerdefinierte Implementierung von document.write zu verwenden, wenn ich sie auf meiner Domäne laden.Aliasing einer DOM-Funktion (Document.Write) und Skripts auf anderen Domänen

dh:

document.write = function(args) { 
    // My custom Function 
    } 

Dies funktioniert gut für Skripte auf der gleichen Domäne, aber Skripte auf anderen Domänen verwenden, um die Standard-Browser. Kann ich das überschreiben?

+0

wo hast du document.write = function ... in deinem html abgelegt? – shahkalpesh

+0

Es ist in einem externen Skript, das vor allen anderen Skripten (vollständig) geladen wird. Dieses Skript lädt die anderen Skripte dynamisch, sodass es garantiert zuerst ausgeführt wird. – FlySwat

+0

Ich denke, dass Ihr Code, wenn er zuletzt ausgeführt wird, Ihre Implementierung ausführen sollte, wenn er document.write (...) aufruft. – shahkalpesh

Antwort

0

Sie sind hier:

(window.HTMLDocument ? HTMLDocument.prototype : document).write = function(s) { 
    this.title = s; 
} 

Sowohl in IE und in Nicht-IE, "das" Objekt ist das Browser-Dokument-Objekt.

+0

Das macht keinen Unterschied :( – FlySwat

+0

Vielen Dank, dass Sie meine Hilfe missbraucht haben, aber ich werde meine richtige Antwort nicht zurückziehen. Wie auch immer, ich habe getestet, was ich vorgeschlagen habe und es funktioniert. Sie können es sehen: http://www.amplesdk.com/share/test.html –

Verwandte Themen