Hal*_*syz 3 javascript silverstripe
我正在使用SilverStripe 3.0 CMS,我需要在CMS中加入Google Map.
我正在执行这些步骤,除了它有点旧,官方文档在当前版本的SilverStripe中使用相同的方法(至少它似乎是当前版本的文档).
问题出在这部分代码中:
Behaviour.register({
"#Form_EditForm" : {
initialize : function() {
this.observeMethod("PageLoaded", this.adminPageHandler);
this.adminPageHandler();
},
adminPageHandler : function() {
initialize();
}
}
});
Run Code Online (Sandbox Code Playgroud)
首先,没有定义行为.我需要手动包含框架内的behaviour.js文件.但现在,我得到一个类型错误:
this.observeMethod is not a function
Run Code Online (Sandbox Code Playgroud)
在SilverStripe CMS中打开页面编辑器时,有人可以给我一些提示,以便调用javascript函数吗?
您提到的'Behaviour.register'调用肯定已弃用,核心代码中不再提供,因此文档需要在此处进行更新.
不幸的是,我找不到一个记录的方法来取代这种行为,但是现在以下内容应该对你有用,基于你在第一手提到的论坛帖子中的方法:
找到这里添加的'initGoogleMaps.js'脚本:
function getCMSFields() {
Requirements::javascript('mysite/javascript/initGoogleMaps.js');
...
Run Code Online (Sandbox Code Playgroud)
在这个脚本中,删除Behaviour.register...块,并将该initialize函数移到document.ready 之外(或者只是删除document.ready部分),因此initialize全局可用(您可以考虑重命名).
然后,在里面添加以下内容getCMSFields:
$fields->addFieldToTab('Root.Content', new LiteralField('js', '<script>initialize();</script>'));
Run Code Online (Sandbox Code Playgroud)
这将确保initialize每次在cms内呈现页面的"编辑视图"时调用该函数.
心连心
| 归档时间: |
|
| 查看次数: |
4736 次 |
| 最近记录: |