Repository: tapestry-5 Updated Branches: refs/heads/master 1dbcb377e -> a949d55e7
TAP5-2339: Ajax exception frame complains about "Function expected" in IE8 Resolution involves not re-using the exception container; this seems like it can be a race condition in IE8 Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/a949d55e Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/a949d55e Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/a949d55e Branch: refs/heads/master Commit: a949d55e7b5dfbc590e5b0ad3e557ef1143922ae Parents: 1dbcb37 Author: Howard M. Lewis Ship <hls...@apache.org> Authored: Mon Jun 1 15:21:37 2015 -0700 Committer: Howard M. Lewis Ship <hls...@apache.org> Committed: Mon Jun 1 15:21:37 2015 -0700 ---------------------------------------------------------------------- .../modules/t5/core/exception-frame.coffee | 79 +++++++++----------- 1 file changed, 37 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/a949d55e/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-frame.coffee ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-frame.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-frame.coffee index 759a4b9..3be3da8 100644 --- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-frame.coffee +++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/exception-frame.coffee @@ -1,5 +1,3 @@ -# Copyright 2012-2013 The Apache Software Foundation -# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -16,54 +14,51 @@ # # Manages a special element used to present an HTML exception report from an Ajax request (where a non-markup response # was expected, including a partial page render response). -define ["./dom", "underscore"], - (dom, _) -> - container = null - iframe = null - iframeDocument = null +define ["./dom"], (dom) -> - write = (content) -> - # Clear current content: - iframeDocument.open() - # Write new content: - iframeDocument.write content - iframeDocument.close() + write = (container, content) -> + iframe = (container.findFirst "iframe").element - clear = -> - write "" - container.hide() - return false + # See http://xkr.us/articles/dom/iframe-document/ - create = -> - return if container + iframeDocument = iframe.contentWindow or iframe.contentDocument + if iframeDocument.document + iframeDocument = iframeDocument.document - container = dom.create - class: "exception-container" - """ - <iframe> </iframe> - <div> - <button class="pull-right btn btn-primary"> - <i class="icon-remove icon-white"></i> - Close - </button> - </div> - """ + # Clear current content: + iframeDocument.open() + # Write new content: + iframeDocument.write content + iframeDocument.close() - dom.body.append container.hide() + clear = -> + container = @closest '.exception-container' + container.remove() + return false - iframe = (container.findFirst "iframe").element + create = -> - # See http://xkr.us/articles/dom/iframe-document/ + container = dom.create + class: "exception-container" + """ + <iframe> </iframe> + <div> + <button class="pull-right btn btn-primary"> + <i class="icon-remove icon-white"></i> + Close + </button> + </div> + """ - iframeDocument = iframe.contentWindow or iframe.contentDocument - if iframeDocument.document - iframeDocument = iframeDocument.document + dom.body.append container.hide() - container.on "click", "button", clear + container.on "click", "button", clear + container - # Export single function: + # Export single function: - (exceptionContent) -> - create() - write exceptionContent - container.show() \ No newline at end of file + (exceptionContent) -> + container = create() + write container, exceptionContent + container.show() + return \ No newline at end of file