将动态变量注入到 React Native 的 WebView 的注入的 JavaScript 字符串中
Inject dynamic vars into React Native's WebView's injectedJavaScript string
我正在我的应用程序中加载此 WebView:
<WebView
style={{
marginTop: 5,
flex:1,
flexDirection: 'column',
alignItems:'center',
justifyContent: 'center',
backgroundColor: 'rgba(255,255,255,0.8)',
height:300
}}
source={require('./test.html')}
injectedJavaScript={injectedScript}
scalesPageToFit={true}
/>
因为我希望此 html 文件显示我在调用渲染之前获得的字符串 - 我想执行以下操作:
let injectedScript = `CKEDITOR.instances.editor.setData(${bodyForDisplay});`;
但这就是行不通。当我用静态字符串(即 "test")替换 ${bodyForDisplay} 时 - 它完美无缺。
关于如何在此处注入动态值的任何想法?
您需要用单引号或双引号将 ${bodyForDisplay}
括起来,因为它是方法 setData
.
的字符串参数
此外,请确保对 bodyForDisplay 中的字符串进行转义,这样它就不会关闭开头的字符串引号(单引号或双引号)。
信任用户输入是不安全的,因此您也应该正确转义该字符串中的其他字符。
我正在我的应用程序中加载此 WebView:
<WebView
style={{
marginTop: 5,
flex:1,
flexDirection: 'column',
alignItems:'center',
justifyContent: 'center',
backgroundColor: 'rgba(255,255,255,0.8)',
height:300
}}
source={require('./test.html')}
injectedJavaScript={injectedScript}
scalesPageToFit={true}
/>
因为我希望此 html 文件显示我在调用渲染之前获得的字符串 - 我想执行以下操作:
let injectedScript = `CKEDITOR.instances.editor.setData(${bodyForDisplay});`;
但这就是行不通。当我用静态字符串(即 "test")替换 ${bodyForDisplay} 时 - 它完美无缺。
关于如何在此处注入动态值的任何想法?
您需要用单引号或双引号将 ${bodyForDisplay}
括起来,因为它是方法 setData
.
此外,请确保对 bodyForDisplay 中的字符串进行转义,这样它就不会关闭开头的字符串引号(单引号或双引号)。 信任用户输入是不安全的,因此您也应该正确转义该字符串中的其他字符。