1
0
mirror of https://github.com/webrecorder/pywb.git synced 2025-03-25 23:47:47 +01:00

wombat: ensure document.write override handles elements that go into

head as well as body
This commit is contained in:
Ilya Kreymer 2015-01-27 18:02:14 -08:00
parent 59630c08f6
commit 976decb3f1

View File

@ -752,7 +752,6 @@ _WBWombat = (function() {
targetOrigin = window.location.origin; targetOrigin = window.location.origin;
} }
return orig.call(this, message, targetOrigin, transfer); return orig.call(this, message, targetOrigin, transfer);
} }
@ -850,10 +849,25 @@ _WBWombat = (function() {
//============================================ //============================================
function init_write_override() function init_write_override()
{ {
var orig_doc_write = document.write;
document.write = function(string) { document.write = function(string) {
var doc = new DOMParser().parseFromString(string, "text/html"); var doc = new DOMParser().parseFromString(string, "text/html");
if (doc) { if (doc) {
if (doc.head && document.head) {
var children = doc.head.children;
for (var i = 0; i < children.length; i++) {
//document.head.appendChild(children[i]);
// in head, must call original write to ensure same execution order..
rewrite_elem(children[i]);
orig_doc_write.call(this, children[i].outerHTML);
}
}
if (doc.body && document.body) {
var children = doc.body.children; var children = doc.body.children;
for (var i = 0; i < children.length; i++) { for (var i = 0; i < children.length; i++) {
@ -862,6 +876,7 @@ _WBWombat = (function() {
} }
} }
} }
}
//============================================ //============================================
function wombat_init(replay_prefix, capture_date, orig_scheme, orig_host, timestamp, mod) { function wombat_init(replay_prefix, capture_date, orig_scheme, orig_host, timestamp, mod) {