Jquery 用户访问网站时打开模式窗口

Jquery 用户访问网站时打开模式窗口,jquery,jquery-ui,drupal-7,drupal-modules,Jquery,Jquery Ui,Drupal 7,Drupal Modules,我试图在自定义模块中使用jquery ui实现构建简单的模式窗口。我想在用户访问我的网站时显示此模式一次。我选择使用cookie实现。 当用户访问我的网站时,如何使此模式出现一次?我应该使用hook_init吗 这是我的密码: mymodule.module /* menu callback */ function mymodule_menu() { $items['mymodule-popup'] = array( 'title' => 'Join Club',

我试图在自定义模块中使用jquery ui实现构建简单的模式窗口。我想在用户访问我的网站时显示此模式一次。我选择使用cookie实现。 当用户访问我的网站时,如何使此模式出现一次?我应该使用hook_init吗

这是我的密码:

mymodule.module

/* menu callback */
function mymodule_menu() {
    $items['mymodule-popup'] = array(
        'title' => 'Join Club',
        'page callback' => 'mymodule_ajax_register',
        'page arguments' => array(1),
        'access callback' => TRUE,
        'type' => MENU_CALLBACK
    );

    return $items;
}

function mymodule_ajax_register() {
    $path = drupal_get_path('module', 'mymodule');
    drupal_add_library('system', 'ui.dialog', false);
    drupal_add_library('system', 'ui.draggable', false);
    drupal_add_js($path.'/mymodule.js');

    $output = '';
    $webform_nid = 30;
    $node = node_load($webform_nid);
    $submission = (object) array();
    $webform = drupal_get_form('webform_client_form_'.$webform_nid, $node, $submission);
    $output .= '<div id="popup">';
    $output .= drupal_render($webform);
    $output .= '</div>';

    return $output;
}
/*菜单回调*/
函数mymodule_菜单(){
$items['mymodule-popup']=数组(
“标题”=>“加入俱乐部”,
“页面回调”=>“mymodule\u ajax\u register”,
“页面参数”=>数组(1),
“访问回调”=>TRUE,
“键入”=>菜单\u回调
);
退回$items;
}
函数mymodule\u ajax\u register(){
$path=drupal_get_path('module','mymodule');
drupal_添加_库('system','ui.dialog',false);
drupal_添加_库('system','ui.draggable',false);
drupal_add_js($path.'/mymodule.js');
$output='';
$webform_nid=30;
$node=node\u load($webform\u nid);
$submission=(对象)数组();
$webform=drupal\u get\u form($webform\u client\u form.$webform\u nid,$node,$submission);
$output.='';
$output.=drupal_render($webform);
$output.='';
返回$output;
}
mymodule.js

(function ($) {
$(document).ready(function(){
    $('#popup').dialog({
        height: 'auto',
        width: 700,
        autoOpen: false,
        modal: true,
    resizable: false
    });

    $('a').click(function(){
        var status = false;
        if(this.className !== 'lightbox-processed'){
            if(!getCookie('newspopup')){
                setCookie('newspopup', 'true', 1);
                $('#popup').dialog('open');
            }else{status = true;}
            if(this.className === 'ui-dialog-titlebar-close ui-corner-all ui-state-hover'){
                $('#popup').dialog('close');
                status = true;
            }else{
            }            
        }
        if(this.id === 'bottomNavClose'){
            $('#popup').dialog('close');
        }
        return status;
    });

    function setCookie(name,value,days) {
        if (days) {
            var date = new Date();
            date.setTime(date.getTime()+(days*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }

    function getCookie(name) {
        var nameEQ = name + "=";
        var ca = document.cookie.split(';');
        for(var i=0;i < ca.length;i++) {
            var c = ca[i];
            while (c.charAt(0)===' ') c = c.substring(1,c.length);
            if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length,c.length);
        }
        return null;
    }

    function deleteCookie(name) {
        setCookie(name,"",-1);
    }
});
})(jQuery);
(函数($){
$(文档).ready(函数(){
$(“#弹出窗口”)。对话框({
高度:“自动”,
宽度:700,
自动打开:错误,
莫代尔:是的,
可调整大小:false
});
$('a')。单击(函数(){
var状态=假;
if(this.className!=='lightbox processed'){
如果(!getCookie('newspopup')){
setCookie('newspoop','true',1);
$('弹出')。对话框('打开');
}else{status=true;}
if(this.className===“ui对话框标题栏关闭ui角所有ui状态悬停”){
$('弹出')。对话框('关闭');
状态=真;
}否则{
}            
}
如果(this.id=='bottomNavClose'){
$('弹出')。对话框('关闭');
}
返回状态;
});
函数setCookie(名称、值、天数){
如果(天){
变量日期=新日期();
date.setTime(date.getTime()+(天*60*60*1000));
var expires=“;expires=“+date.togmString();
}
else var expires=“”;
document.cookie=name+“=”+value+expires+“path=/”;
}
函数getCookie(名称){
变量nameEQ=name+“=”;
var ca=document.cookie.split(“;”);
对于(变量i=0;i
使用这些代码,当用户访问myweb.com/mymodule-popup,然后单击任何链接/url时,将出现模式窗口(弹出窗口)

如何使模式窗口在用户每次访问我的网站时显示一次


我需要你们的建议,谢谢。如果你想保存用户的cookie,请使用函数(php)并通过js代码中的Drupal.visitor.key变量获取。不需要在代码中设置cookie,只需要从Drupal中检索它


另请参见如何解决。

@Rijalul fikri这个答案解决了您的问题吗?如果是,请给出一些反馈(向上投票,选择可接受)。