Joomla 2.5 - 如何在MVC控制器中调用javascript代码?

时间:2014-04-01 08:44:40

标签: javascript php joomla joomla2.5

我通过添加一些额外的字段来自定义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);” 但是这段代码需要在视图上运行,而不是在控制器上运行。

有什么想法吗? 在此先感谢。

1 个答案:

答案 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
    ...
}
...
}
希望它会有所帮助。