Теги скрипта в полях TinyMCE сохраняются некорректно

#javascript #php #html #tinymce

#javascript #php #HTML #tinymce

Вопрос:

Я запускаю TinyMCE на своем сайте и пытаюсь вставить теги скрипта. Я пытаюсь вставить теги моего скрипта в тело исходного кода экземпляра TinyMCE.

Однако, когда я это делаю, у меня возникают проблемы. Когда я отправляю форму, содержащую элемент TinyMCE, теги удаляются.

Я пробовал следующие строки ниже, но по-прежнему безуспешно.

  • allow_script_urls: true
  • valid_elements : '*[*]'
  • extended_valid_elements: 'script[language|type]'

Однако я заметил одну вещь: если мне нужно опубликовать код скрипта в разделе исходного кода экземпляра tinymce, и это сработает. Однако мне нужно иметь возможность добавить его в <body> экземпляра tinymce, чтобы я мог видеть его предварительные просмотры и т.д.

Ниже приведен тег скрипта, который я пытаюсь загрузить.

 <script type="text/javascript" src="http://resources.32red.com/ad.aspx?pid=237638amp;bid=3344"></script>
  

Кто-нибудь может пролить свет на это?

Спасибо

Ответ №1:

Попробуйте следующее:

extended_valid_elements: 'script[language|type|src]'

Я вижу, что вы уже пытались обновить extended_valid_elements свойство с помощью

'script[language|type]' но вы забыли разрешить атрибут src для тегов скрипта

итак, прямо сейчас src атрибут удаляется.

Комментарии:

1. У меня такая же проблема, и, к сожалению, даже когда я добавил, script[language|type|src] он все еще продолжал удалять src . В TinyMCE 3.5.11. Пока не нашел исправления, за исключением обновления до версии 4, что требует некоторых усилий.

2. Я продолжал удалять плагины TinyMCE, пока не нашел виновника — jwplayer плагин, который я использовал, по какой-то причине удалял <script src="..."> .

3. extended_valid_elements : "script[src|async|defer|type|charset]"

Ответ №2:

Похоже, существует ошибка, из-за которой, если тег скрипта заключен в div, TinyMCE сбрасывает скрипт. (даже если вы правильно установили extended_valid_elements) Использование TinyMCE может быть очень неприятным

Комментарии:

1. Я только сегодня в этом убедился. Неудачно. Но рад видеть, что кто-то еще признал это.

2. Грр. Это раздражает. Я думаю, что я тоже сталкиваюсь с этим. Интересно, было ли это исправлено в определенной версии.

Ответ №3:

Для решения проблемы я поместил блок скрипта внутрь тега <code> tag.

 <code>
     <script>alert("abc");</script>
</code>
  

Ответ №4:

В итоге я использовал этот метод, скрывающий от tinymce все внутренние теги скрипта

 protect: [/<script>[sS]*?</script>/g]
  

проверьте https://regex101.com/r/cH35d9/1 для регулярного выражения:

s — все пространство

S — все не пробел

*? — повторите для первого из </script>

и это многоуровнево, потому что группа [] * игнорирует границы новой строки

Поддерживает tinymce5, tinymce6 — https://www.tiny.cloud/docs/tinymce/6/content-filtering/#protect