diff --git a/4chan_x.user.js b/4chan_x.user.js index f0d90166f..1eeda44eb 100644 --- a/4chan_x.user.js +++ b/4chan_x.user.js @@ -1219,17 +1219,21 @@ }; qr = { init: function() { - var iframe; + var data, iframe; g.callbacks.push(qr.node); $.bind(window, 'message', qr.message); $.bind($('#recaptcha_challenge_field_holder'), 'DOMNodeInserted', qr.captchaNode); qr.captchaTime = Date.now(); iframe = $.el('iframe', { - name: 'iframe', hidden: true, + id: 'iframe', src: 'http://sys.4chan.org/post' }); - $.append(d.body, iframe); + data = $.el('span', { + hidden: true, + id: 'data' + }); + $.append(d.body, iframe, data); return $('#recaptcha_response_field').id = ''; }, attach: function() { @@ -1450,7 +1454,11 @@ data[el.name] = el.value; } } - return $('iframe').contentWindow.postMessage(JSON.stringify(data), '*'); + $('#data').textContent = JSON.stringify(data); + return $.globalEval(function() { + data = document.getElementById('data').textContent; + return document.getElementById('iframe').contentWindow.postMessage(data, '*'); + }); }, foo: function() { var body, data, href, node, textContent, _ref; diff --git a/script.coffee b/script.coffee index 4d106f1e6..c4208f2cd 100644 --- a/script.coffee +++ b/script.coffee @@ -972,10 +972,13 @@ qr = qr.captchaTime = Date.now() iframe = $.el 'iframe', - name: 'iframe' hidden: true + id: 'iframe' src: 'http://sys.4chan.org/post' - $.append d.body, iframe + data = $.el 'span', + hidden: true + id: 'data' + $.append d.body, iframe, data #hack - nuke id so it doesn't grab focus when reloading $('#recaptcha_response_field').id = '' @@ -1188,7 +1191,11 @@ qr = for el in $$ '[name]', qr.el when el.value data[el.name] = el.value - $('iframe').contentWindow.postMessage JSON.stringify(data), '*' + $('#data').textContent = JSON.stringify data + + $.globalEval -> + data = document.getElementById('data').textContent + document.getElementById('iframe').contentWindow.postMessage data, '*' foo: -> body = $.el 'body',