Opencart 3.0 - 如何从带有事件系统的目录控制器添加 in-line javascript 代码?
Opencart 3.0 - how to add in-line javascript code from catalog controller with event system?
如何从控制器添加内联 js 代码?
管理模块控制器
$this->model_setting_event
->addEvent("one_two_three","catalog/view/common/header/before","extension/module/oone_two_three/inject_abc_javascript");
并在目录模块控制器中
public function inject_abc_javascript(&$route, &$data){
$code = $this->config->get("module_one_two_three_code");
$data["scripts"] = "<script>OneTwo.push(function() {
OneTwo.init({
appId: $code,
});});</script>";
}
有什么方法可以在 OpenCart header 中添加内联 javascript 吗?
是的,你可以做到。
首先你在 addEvent
参数中有一个 error/typo,将 oone_two_three
更改为 one_two_three
。
那么你的函数需要第三个参数:
public function inject_abc_javascript($route, &$data = false, &$output = false){
// Before closing tag
$hook = '</head>';
$js = '<script>alert("Hello from one_two_three module!");</script></head>';
$output = str_replace($hook, $js, $output);
}
如何从控制器添加内联 js 代码?
管理模块控制器
$this->model_setting_event
->addEvent("one_two_three","catalog/view/common/header/before","extension/module/oone_two_three/inject_abc_javascript");
并在目录模块控制器中
public function inject_abc_javascript(&$route, &$data){
$code = $this->config->get("module_one_two_three_code");
$data["scripts"] = "<script>OneTwo.push(function() {
OneTwo.init({
appId: $code,
});});</script>";
}
有什么方法可以在 OpenCart header 中添加内联 javascript 吗?
是的,你可以做到。
首先你在 addEvent
参数中有一个 error/typo,将 oone_two_three
更改为 one_two_three
。
那么你的函数需要第三个参数:
public function inject_abc_javascript($route, &$data = false, &$output = false){
// Before closing tag
$hook = '</head>';
$js = '<script>alert("Hello from one_two_three module!");</script></head>';
$output = str_replace($hook, $js, $output);
}