我通过添加一些额外的字段来自定义joomla注册模块。 如果注册成功,我需要调用一些javascript代码。 所以我更改了注册控制器文件(components / com_users / controllers / registration.php),如:
public function register()
{
// Check for request forgeries.
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
...
// Attempt to save the data.
$return = $model->register($data);
if ($return === true) {
$script = "<Here comes javascript code>";
echo $script; // this doesn't work
// I don't know how to call above script
...
}
...
}
回声在这里不起作用,我发现joomla需要使用它的api,如“$ document-&gt; addScriptDeclaration($ script);” 但是这段代码需要在视图上运行,而不是在控制器上运行。
有什么想法吗? 在此先感谢。
答案 0 :(得分:1)
您应该使用exit构造来执行脚本。因为脚本在窗口加载后运行完美。所以当你在javascript之后使用exit它终止执行php脚本然后你的javascript就会运行。
尝试以下代码。
public function register()
{
// Check for request forgeries.
JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
...
// Attempt to save the data.
$return = $model->register($data);
if ($return === true) {
$script = "<Here comes javascript code>";
echo $script; // this doesn't work
exit;
// I don't know how to call above script
...
}
...
}
希望它会有所帮助。