0

使用 Joomla!v2.5 和模态打开一个新的弹出窗口

<a href="index.php?option=com_mycomponent&view=my_view" class="modal" rel="{handler: 'iframe', size: {x: 800, y: 600}}">

用户将有一些选项(链接),例如信息/删除/锁定。

选择(单击)一个选项并单击“关闭”按钮后,我需要关闭模式或关闭模式并刷新页面。

我总是可以使用这样的东西刷新页面

<a href="index.php?option=com_mycomponent&view=my_view" class="modal" rel="{handler:'iframe', size: {x: 800, y: 600},onClose:function(){var js =window.location.reload();}}">

但我需要在某些条件下刷新页面(例如,用户单击“删除”=> 刷新,用户单击“信息”=> 什么也不做)

想法?

谢谢

4

2 回答 2

2

所以,在 Joomla!2.5modal弹出窗口由SqueezeBox脚本(1.3 版)处理。

将您的onClose处理程序设置为调用您自己的 Javascript 方法,因此:

onClose:function(){var js =window.location.reload();}

更改为:

onClose:function(){checkUserChoice();}

或者,如果您保持 Javascript 的命名空间整洁(如推荐的那样)

onClose:function(){mycomponent.checkUserChoice();}

让您checkUserChoice()做出决定:

mycomponent.checkUserChoice = function () {
    userChoice = document.id('userOption).value;
    if(userChoice == 'delete') {
        // refresh our page
    } else {
        // do something else
    }
}

然后将您的自定义 Javascript 文件加载到视图中:

// Get the document object
$document = JFactory::getDocument();
$document->addScript('path/to/myscript.js');

或者,如果您只有一种小方法可以加载:

$myscript = <<<'JS'
mycomponent.checkUserChoice = function () {
    userChoice = document.id('userOption).value;
    if(userChoice == 'delete') {
        // refresh our page
    } else {
        // do something else
    }
}
JS;

$document->addScriptDeclaration($myscript);
于 2013-03-29T02:58:32.453 回答
0

对于 onClose 处理程序,我建议让它调用您自己的自定义 JS 方法。在该方法中,处理您的自定义逻辑以确定是否刷新页面。

于 2013-03-29T02:05:09.057 回答