2015-12-14 2 views
1

Я настроил редактор TinyMCE, как описано в the documentation.Шаблоны TinyMCE не работают

$scope.tinymceOptions = { 
    plugins: 'template', 
    templates: '/rest/templates' 
} 
@RequestMapping(value = "/rest/templates", method = RequestMethod.GET, produces = {MediaType.APPLICATION_JSON_VALUE}) 
@ResponseBody 
public Set<TemplateVO> getTemplates() { 
    Set<TemplateVO> result = // ... 
    return result; 
} 

Как вы можете видеть, в templates варианте Я указал URL, который создает список шаблонов. Когда пользователь выполняет команду «Вставить шаблон», вызывается метод контроллера getTemplates(), и все шаблоны возвращаются в массиве JSON.

[{"title":"test","description":"test","content":"test"},{"title":"test 2","description":"test","content":"test 2"}] 

И я ожидаю, что они будут показаны. Но я получаю сообщение с текстом «Без шаблонов».

Когда я указываю те же элементы, как объект, вставка шаблона работает отлично:

$scope.tinymceOptions = { 
    plugins: 'template', 
    templates: [ 
     {title: 'test', description: 'test', content: 'test'}, 
     {title: 'test 2', description: 'test', content: 'test 2'} 
    ] 
} 

Что такое правильный способ загрузки шаблонов TinyMCE из удаленного URL?

UPD. Я caugth исключение внутри JSON.parse() (в Google Chrome)

EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self'" . at eval (native) at Object.parse ...

+0

Какую версию вы будете использовать? Проверьте http://community.tinymce.com/forum/viewtopic.php?id=32825 –

+0

@BasvanStein Я использую TinyMCE 4.2.8 – naXa

ответ

0

Ваш Content Security Policy не позволяет оценить JS, потому что это небезопасно. Вы можете добавить 'unsafe-eval' к вашему ПСУ и загрузки шаблонов будет работать:

<!-- Chrome 25+; FireFox 23+; Safari 7+ --> 
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-eval'"/> 
<!-- FireFox 4+; IE 10+ (not fully) --> 
<meta http-equiv="X-Content-Security-Policy" content="xhr-src 'self' 'unsafe-eval'"/> 
<!-- Chrome 14+; Safari 6+ --> 
<meta http-equiv="X-WebKit-CSP" content="script-src 'self' 'unsafe-eval'"/> 
Смежные вопросы