如何使用template_replace_values替换tinymce中的变量?

问题描述 投票:0回答:1

我想在tinymce中使用template_replace_values替换值。我在textarea中添加了<p>Name: {$username}, StaffID: {$staffid}</p>,在tinymce.init中添加了template_replace_values:{username: "Jack Black",staffid: "991234"}。当我运行代码时,变量未替换为值。它仍然显示变量。

// Initialize TinyMCE
tinymce.init({
  selector: "textarea", // change this value according to your HTML
  plugins: "template",
  template_replace_values: 
  {
    username: "Jack Black",
    staffid: "991234"
  }
});
<!doctype html>
<html class="no-js" lang="">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>Preview TinyMCE variable plugin</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdn.tinymce.com/4/tinymce.js"></script>
</head>
<body>
  <form method="post">
    <textarea rows="18">
		 <p>Name: {$username}, StaffID: {$staffid}</p>
	</textarea>
  </form>
</body>
</html>

我遵循documentation中显示的示例。带有大括号和美元符号的变量声明{$staffid}是否不正确?

javascript replace tinymce tinymce-4
1个回答
1
投票

template_replace_values选项会在您通过模板(使用template插件)将内容插入编辑器时发生。首次初始化编辑器时,它不执行任何类型的全局值查找/替换。

在上面的示例中,textarea中有一些“默认”内容,将在初始化时将其加载到编辑器中。由于该内容不是通过模板插入的,因此您引用的设置不会影响该内容。

我创建了一个小提琴,用来显示template插件的工作方式:

http://fiddle.tinymce.com/1khaab

如果您使用Insert菜单并选择Insert template...,您将看到已插入模板的HTML并进行了替换。

© www.soinside.com 2019 - 2024. All rights reserved.