From 5690604556bfff5c237853ad559d142dd4cabd3a Mon Sep 17 00:00:00 2001 From: Ilya Kreymer Date: Fri, 2 Dec 2016 12:11:54 -0800 Subject: [PATCH] client-side rewrite: add eval() override, add WB_wombat_ prefixes for location --- pywb/static/wombat.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pywb/static/wombat.js b/pywb/static/wombat.js index 554ea57c..f8433590 100644 --- a/pywb/static/wombat.js +++ b/pywb/static/wombat.js @@ -729,6 +729,10 @@ var wombat_internal = function($wbwindow) { var abs_url = extract_orig(url); + if (!abs_url) { + abs_url = $wbwindow.WB_wombat_location.href; + } + if (abs_url && (abs_url != $wbwindow.WB_wombat_location.origin) && !starts_with(abs_url, $wbwindow.WB_wombat_location.origin + "/")) { @@ -2143,6 +2147,18 @@ var wombat_internal = function($wbwindow) { $wbwindow.Document.prototype.open = new_open; } + //============================================ + function init_eval_override() { + var orig_eval = $wbwindow.eval; + + $wbwindow.eval = function(string) { + if (string) { + string = string.replace(/\blocation\b/g, "WB_wombat_$&"); + } + orig_eval.call(this, string); + } + } + //============================================ function init_iframe_wombat(iframe) { var win; @@ -2410,6 +2426,9 @@ var wombat_internal = function($wbwindow) { // write init_write_override(); + // eval + init_eval_override(); + // Ajax init_ajax_rewrite();