Моя цель - вставить изображение в редакторе Quill в компонент react-native-webview, как показано ниже. Для чего мне нужен доступ к переменной quill в теге скрипта:
<WebView
originWhitelist={['*']}
ref={(r) => setWebref(r)}
javaScriptEnabled={true}
source={{
html: `<head>
<link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
</head>
<body>
<div id="editor" >${content}</div>
</body>
<script>
var toolbarOptions = [[ 'bold', 'italic',],];
var quill = new Quill('#editor', {
modules: {
toolbar: toolbarOptions
})
</script>`,
}}
/>
Когда я пытаюсь запустить следующий фрагмент вне веб-просмотра в react-native, ничего не происходит
const url = `https://...`;
const code = `const range = window.quill.getSelection();
window.quill.insertEmbed(range.index, 'image', ${url});
`;
webref.injectJavaScript(code);
Но когда я пытаюсь запустить следующий фрагмент вне веб-просмотра в react-native, я получаю ожидаемый результат.
const snippet = `document.body.style.backgroundColor = 'blue';
true;
`;
webref.injectJavaScript(snippet);
${url}
, например,'${url}'
? - person Romeo Sierra   schedule 10.01.2021const url = `https://blah.com`;
иconst code = `....insertEmbed(range.index, 'image', ${url});`;
, чистый результат введенного кода будет.insertEmbed(range.index, 'image', https://blah.com);
. И это уже в кавычках нет. Он заключен в обратные кавычки, что делает его строковым литералом шаблона. - person Romeo Sierra   schedule 10.01.2021