TYPO3 Neos:重新加载后 运行 内联 Javascript

TYPO3 Neos: Run inline Javascript after reload

如果模板中有内联JavaScript,应用内容更改后,如何再次执行?

举个简单的例子:

<head>
  <script type="text/javascript">
    console.log('hello world');
  </script>
</head>

第一次加载页面时你得到 'hello world'。现在更改一些内容并单击 "Apply"。没有任何反应。

我能做什么?

我认为问题在于,一旦页面最初加载(和您的脚本 运行),所有其他操作都不会重新加载页面,因为这些请求是异步的。当你导航到一个页面时,它的内容被加载并插入。脚本不会这样执行。

幸运的是,TYPO3 Neos 会触发一些 JavaScript 事件(例如,当加载页面或创建节点时),您可以监听这些事件以调用您的函数。请参阅 offical documentation 以获取所有已触发事件和提示的列表。

例如:

function sayHelloWorld() {
  console.log('hello world');
}
document.addEventListener('Neos.PageLoaded', function(event) {
  //This will fire whenever the page reloads by Ajax
  sayHelloWorld();
}, false);