如果模板中有内联 JavaScript,并且在对内容应用更改后,如何再次执行它?
只是一个简单的例子:
<head>
<script type="text/javascript">
console.log('hello world');
</script>
</head>
第一次加载你会得到“hello world”的页面。现在更改一些内容并单击“应用”。什么都没发生。
我能做些什么?
我认为问题在于,一旦页面最初加载(并且您的脚本运行),所有其他操作都不会重新加载页面,因为这些请求是异步的。当您导航到一个页面时,它的内容会被加载并插入。脚本不会以这种方式执行。
幸运的是,TYPO3 Neos 会触发一些 JavaScript 事件(例如,当页面加载或创建节点时),您可以监听这些事件以调用您的函数。有关所有触发事件和提示的列表,请参阅官方文档。
例如:
function sayHelloWorld() {
console.log('hello world');
}
document.addEventListener('Neos.PageLoaded', function(event) {
//This will fire whenever the page reloads by Ajax
sayHelloWorld();
}, false);