0

ジュムラを使って!v2.5 とモーダルで新しいポップアップを開く

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

ユーザーには、info/delete/lock などのいくつかのオプション (リンク) があります。

オプションを選択(クリック)して「閉じる」ボタンをクリックした後、モーダルを閉じるか、モーダルを閉じてページを更新する必要があります。

このようなものを使用して、常にページを更新できます

<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.5 では、modalポップアップは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');

または、ロードする小さなメソッドが 1 つしかない場合:

$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 に答える