将动态变量注入React Native的WebView的injectJavaScript字符串

时间:2016-05-19 11:50:40

标签: javascript webview uiwebview react-native

我正在我的应用中加载此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文件显示我在调用render之前得到的字符串 - 我想要执行以下操作:

        let injectedScript = `CKEDITOR.instances.editor.setData(${bodyForDisplay});`;

但它不起作用。当我用静态字符串(即“test”)替换$ {bodyForDisplay}时 - 它可以完美地工作。

有关如何在此处注入动态值的任何想法?

1 个答案:

答案 0 :(得分:3)

您需要使用单引号或双引号括住${bodyForDisplay},因为它是方法setData的字符串参数。

此外,请确保转义bodyForDisplay中的字符串,以便它不会关闭开始字符串引号(单引号或双引号)。 信任用户输入永远不安全,所以你也应该正确地逃避该字符串中的其他字符。