2013-03-28 56 views
0

使用Joomla! v2.5和模式來打開一個新的彈出框Joomla!模式,在條件關閉刷新頁面

<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();}}"> 

總是刷新頁面,但我需要刷新條件下的頁面(如用戶點擊「刪除」 =>刷新,用戶點擊「信息」 =>做沒有)

想法?

感謝

回答

0

有關的OnClose處理程序,我建議有它調用自己的自定義JS方法。在該方法中,處理您的自定義邏輯以確定是否刷新頁面。

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'); 

或者,如果你只有一個小方法來加載:

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

$document->addScriptDeclaration($myscript); 
+0

是的,但我怎麼能「將用戶的選擇從模態傳遞給父類? – poscaman

相關問題