2011-12-07 11 views
1

私はJquery colorboxを使用してポップアップウィンドウを実装しています。このポップアップはすぐに開かれ、動作しています。しかし、最初の読み込みページでは、最初の読み込みだけで、ポップアップはコンテンツを読み込むことができません。 My screenポップアップのカラーボックスをすぐに開く(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タグです。それは[HTML形式]を阻止するCMS内のすべてを読み込むあなたの助け

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(直接):

はこれを試してみてください。リンクのように[] –

+0

私は解決策を更新しました、それを確認してください。私は最初の文字列の中で一重引用符を手動でエスケープしたのに加えて、エスケープ文字(以前のバージョンは文字列ではなくオブジェクトを返す)を更新しました。これは、 '<?php echo $ this-> getLayout ) - > createBlock( 'cms/block') - > setBlockId( 'popup') - > toHtml(); ?> ' – Minras

関連する問題