2011-12-07 49 views
1

我正在使用Jquery colorbox來實現一個彈出窗口。這個彈出窗口立即打開並運行。但是對於第一個加載頁面,只是第一次加載,彈出窗口無法加載內容。 My screen使用colorbox彈出立即打開(jQuery - Magento)

jQuery(document).ready(function defaultPopup(){ 

    var direct = '<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('popup')->toHtml(); ?>' 
    if(direct){ 
     jQuery('#popup_home').colorbox({open:true,html:direct,overlayClose:false}); 
     return false; 
    } 
}); 
<div id="popup_home"></div> 

回答

1

你應該逃避字符串中的特殊字符(<>)。

對於網絡瀏覽器,direct變量的內容是一個沒有內容的HTML標記。

試試這個:

jQuery(document).ready(function defaultPopup(){ 
var direct = '<?php echo $this->getLayout()->createBlock(\'cms/block\')->setBlockId(\'popup\')->toHtml(); ?>' 
direct = $('<div/>').text(direct).text() // escaping characters in the initial string 
if(direct){ 
    jQuery('#popup_home').colorbox({open:true,html:direct,overlayClose:false}); 
    return false; 
} 
}); 
<div id="popup_home"></div> 
+0

感謝您的幫助,但的.text(直接)在CMS塊[HTML表單]加載它的一切。就像它加載的鏈接[] –

+0

我更新瞭解決方案,請檢查它。我更新了字符轉義(以前的版本返回的對象,而不是字符串),另外我手動轉義了初始字符串中的單引號 - 這必須在服務器上生成字符串'<?php echo $ this-> getLayout ) - > createBlock( 'CMS /塊') - > setBlockId( '彈出') - > toHtml(); ?>' – Minras