Преглед на файлове

Escape any custom CSS to avoid problems with quotes or newlines

Rich преди 7 години
родител
ревизия
f24db13426
променени са 2 файла, в които са добавени 6 реда и са изтрити 2 реда
  1. 3
    1
      autoHeightWebView/index.android.js
  2. 3
    1
      autoHeightWebView/index.ios.js

+ 3
- 1
autoHeightWebView/index.android.js Целия файл

@@ -240,9 +240,11 @@ export default class AutoHeightWebView extends PureComponent {
240 240
     if (!styles) {
241 241
       return script;
242 242
     }
243
+    // Escape any single quotes or newlines in the CSS with .replace()
244
+    const escaped = styles.replace(/\'/g, "\\'").replace(/\n/g, '\\n')
243 245
     return `
244 246
       var styleElement = document.createElement('style');
245
-      var styleText = document.createTextNode('${styles}');
247
+      var styleText = document.createTextNode('${escaped}');
246 248
       styleElement.appendChild(styleText);
247 249
       document.head.appendChild(styleElement);
248 250
       ${script}

+ 3
- 1
autoHeightWebView/index.ios.js Целия файл

@@ -94,9 +94,11 @@ export default class AutoHeightWebView extends PureComponent {
94 94
       if (!styles) {
95 95
         return script;
96 96
       }
97
+      // Escape any single quotes or newlines in the CSS with .replace()
98
+      const escaped = styles.replace(/\'/g, "\\'").replace(/\n/g, '\\n')
97 99
       return `
98 100
         var styleElement = document.createElement('style');
99
-        var styleText = document.createTextNode('${styles}');
101
+        var styleText = document.createTextNode('${escaped}');
100 102
         styleElement.appendChild(styleText);
101 103
         document.head.appendChild(styleElement);
102 104
         ${script}