Work around captcha bug causing captcha to go offscreen to the right. #550
This commit is contained in:
parent
4f423b5f7c
commit
1895d5e589
@ -34,6 +34,8 @@ Captcha.v2 =
|
|||||||
$.on window, 'captcha:success', =>
|
$.on window, 'captcha:success', =>
|
||||||
# XXX Greasemonkey 1.x workaround to gain access to GM_* functions.
|
# XXX Greasemonkey 1.x workaround to gain access to GM_* functions.
|
||||||
$.queueTask => @save false
|
$.queueTask => @save false
|
||||||
|
new MutationObserver(@watchBubbles.bind @).observe d.body,
|
||||||
|
childList: true
|
||||||
|
|
||||||
initFrame: ->
|
initFrame: ->
|
||||||
if token = $('.fbc-verification-token > textarea')?.value
|
if token = $('.fbc-verification-token > textarea')?.value
|
||||||
@ -228,3 +230,20 @@ Captcha.v2 =
|
|||||||
window.grecaptcha.reset(container.dataset.widgetID);
|
window.grecaptcha.reset(container.dataset.widgetID);
|
||||||
})();
|
})();
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
watchBubbles: (mutations) ->
|
||||||
|
for mutation in mutations
|
||||||
|
for node in mutation.addedNodes
|
||||||
|
if $ 'iframe[src^="https://www.google.com/recaptcha/api2/frame"]', node
|
||||||
|
new MutationObserver(@fixBubble.bind(@, node)).observe node,
|
||||||
|
attributes: true
|
||||||
|
|
||||||
|
fixBubble: (node) ->
|
||||||
|
{bottom, right, width} = node.getBoundingClientRect()
|
||||||
|
if (
|
||||||
|
bottom > 0 and # not deliberately offscreen
|
||||||
|
right > doc.clientWidth # offscreen to right
|
||||||
|
)
|
||||||
|
qrLeft = QR.nodes.el.getBoundingClientRect().left
|
||||||
|
newLeft = Math.max 0, qrLeft - width
|
||||||
|
node.style.left = "#{newLeft}px"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user