You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2021/12/12 09:49:21 UTC

[royale-asjs] branch develop updated: Don't use innerHTML

This is an automated email from the ASF dual-hosted git repository.

harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 667cda1  Don't use innerHTML
667cda1 is described below

commit 667cda16885699889461cee0210114471887dcfb
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Dec 12 11:49:09 2021 +0200

    Don't use innerHTML
---
 .../org/apache/royale/html/ImageAndTextButton.as   | 28 +++++++++++-----------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ImageAndTextButton.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ImageAndTextButton.as
index a1f24a8..86b32e4 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ImageAndTextButton.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/ImageAndTextButton.as
@@ -71,7 +71,11 @@ package org.apache.royale.html
             ImageAndTextModel(model).text = value;
             COMPILE::JS
             {
-                setInnerHTML();
+                if(!textNode){
+                    textNode = document.createTextNode(value) as Text;
+                    element.appendChild(textNode);
+                }
+                textNode.nodeValue = "\xa0" + value;
             }
         }
 
@@ -98,10 +102,16 @@ package org.apache.royale.html
             ImageAndTextModel(model).image = value;
             COMPILE::JS
             {
-                setInnerHTML();
+                imgElement.src = value;
             }
         }
 
+        COMPILE::JS
+        protected var imgElement:HTMLImageElement;
+        
+        COMPILE::JS
+        protected var textNode:Text;
+
         /**
          * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
          */
@@ -110,20 +120,10 @@ package org.apache.royale.html
         {
 			addElementToWrapper(this,'button');
             element.setAttribute('type', 'button');
+            imgElement = document.createElement("img") as HTMLImageElement;
+            element.appendChild(imgElement);
             return element;
         }
 
-        /**
-         */
-        COMPILE::JS
-        protected function setInnerHTML():void
-        {
-            var inner:String = '';
-            if (image != null)
-                inner += "<img src='" + image + "'/>";
-            inner += '&nbsp;';
-            inner += text;
-            element.innerHTML = inner;
-        };
 	}
 }