我有一个加载到脚本模板中的客户端 CMS div。我需要在该 div 内运行一个脚本。如何在此脚本标签内运行 myFunction?它提前关闭第一个脚本标签:(
<script type="text/html" id="tmpl-foo">
<div id="myCMSdiv">
<p> My Content </p>
<script>
myFunction();
</script>
</div>
</script>
最佳答案
提供一些有关您的 CMS 如何绑定(bind)模板(JS 文件)的上下文
如果您的 CMS 使用 template
绑定(bind),那么您只需使用 afterRender
。
就像这样:
var viewModel = function() {
this.myFunction = function() {
console.log("test");
}
}
ko.applyBindings(new viewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="template: { name: 'tmpl-foo', afterRender: myFunction }"></div>
<script type="text/html" id="tmpl-foo">
<div id="myCMSdiv">
<p>My Content</p>
</div>
</script>
有关模板
绑定(bind)的更多信息here .
如果您的 CMS 将其用作组件
,那么您需要另一种方法。
检查这个post关于如何做到这一点,但要点与上面相同。
关于javascript - 在脚本模板内运行 javascript/jquery(脚本标签中的脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41128201/