Skip to content

Commit

Permalink
Add window.top as fallback window in plugins
Browse files Browse the repository at this point in the history
  • Loading branch information
MrGoumX committed Apr 21, 2022
1 parent 5f3abde commit 3decaba
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 9 deletions.
15 changes: 10 additions & 5 deletions src/plugins/badge.coffee
Expand Up @@ -595,7 +595,12 @@ class Badge

_head: -> @parent_doc.head || @parent_doc.getElementsByTagName('head')[0]

_setParentDoc: -> @parent_doc = window.parent.document
_setParentDoc: ->
@plugin_window = if window.parent?.document
window.parent
else
window.top
@parent_doc = @plugin_window.document

_ratingToStars: (rating = 0, limit = 5) ->
return [] if @_noStars(rating)
Expand Down Expand Up @@ -633,11 +638,11 @@ class Badge
"#{settings.url.application_base}/badge/shop_reviews?#{serialized_params}"

_initHideOnScroll: (badge) =>
past_scroll = window.parent.pageYOffset
past_scroll = @plugin_window.pageYOffset
return unless past_scroll? # pageYOffset is not supported for IE < 9

@_attachEvent @parent_doc, 'scroll', (_event) =>
current_scroll = window.parent.pageYOffset
current_scroll = @plugin_window.pageYOffset

return if current_scroll == past_scroll # Ignore horizontal scrolling
return if @_outOfBound(current_scroll) # Ignore OSX bounce
Expand Down Expand Up @@ -667,7 +672,7 @@ class Badge
@parent_doc.body.clientHeight, @parent_doc.documentElement.clientHeight

_vieport: ->
width: window.parent.innerWidth || @parent_doc.documentElement.clientWidth || parent_doc.body.clientWidth
height: window.parent.innerHeight || @parent_doc.documentElement.clientHeight || parent_doc.body.clientHeight
width: @plugin_window.innerWidth || @parent_doc.documentElement.clientWidth || parent_doc.body.clientWidth
height: @plugin_window.innerHeight || @parent_doc.documentElement.clientHeight || parent_doc.body.clientHeight

new Badge
6 changes: 5 additions & 1 deletion src/plugins/order_stash.coffee
Expand Up @@ -397,7 +397,11 @@ class OrderStash
_head: -> @parent_doc.head || @parent_doc.getElementsByTagName('head')[0]
_animationSupport: -> @$el.style.animation?

_setParentDoc: -> @parent_doc = window.parent.document
_setParentDoc: ->
@parent_doc = if window.parent?.document
window.parent.document
else
window.top.document

_endpoint: ->
params =
Expand Down
10 changes: 7 additions & 3 deletions src/plugins/partner_sku_reviews.coffee
Expand Up @@ -415,7 +415,11 @@ class PartnerSkuReviews
asset_url = (source) -> "#{settings.url.base}/assets/#{source}"

constructor: ->
@parent_doc = window.parent.document
@plugin_window = if window.parent?.document
window.parent
else
window.top
@parent_doc = @plugin_window.document
@onDOMReady =>
@head = @parent_doc.getElementsByTagName('head')[0]
@_renderAll()
Expand Down Expand Up @@ -491,11 +495,11 @@ class PartnerSkuReviews
script.charset = 'utf-8'
script.async = true

window.parent['sa_jsonp_sku_reviews_fetch'] = (response) =>
@plugin_window['sa_jsonp_sku_reviews_fetch'] = (response) =>
callback(response)
# cleanup
script.parentNode.removeChild(script)
delete window.parent['sa_jsonp_sku_reviews_fetch']
delete @plugin_window['sa_jsonp_sku_reviews_fetch']

@head.appendChild(script)

Expand Down

0 comments on commit 3decaba

Please sign in to comment.