Ms word 第一次打开动态jquery对话框时,页面自动转到顶部

Ms word 第一次打开动态jquery对话框时,页面自动转到顶部,ms-word,jquery-ui-dialog,office-js,word-addins,javascript-api-for-office,Ms Word,Jquery Ui Dialog,Office Js,Word Addins,Javascript Api For Office,我正在使用JavaScript API开发任务窗格word插件,我使用以下代码使用函数动态创建jQuery对话框: function myConfirm(dialogText, okFunc, cancelFunc, dialogTitle) { $('<div style="padding: 10px; max-width: 500px; word-wrap: break-word;">' + dialo

我正在使用JavaScript API开发任务窗格word插件,我使用以下代码使用函数动态创建jQuery对话框:

function myConfirm(dialogText, okFunc, cancelFunc, dialogTitle) {
        $('<div style="padding: 10px; max-width: 500px; word-wrap: break-word;">' 
                              + dialogText + '</div>').dialog({
            draggable: true,
            modal: true,
            resizable: false,
            width: 'auto',
            title: dialogTitle || 'Confirm',
            minHeight: 75,
            position: {
                my: "center",
                at: "center",
                of: window
            },
            buttons: {
                OK: function() {
                    if (typeof(okFunc) == 'function') {
                        setTimeout(okFunc, 50);
                    }
                    $(this).dialog('destroy');
                },
                Cancel: function() {
                    if (typeof(cancelFunc) == 'function') {
                        setTimeout(cancelFunc, 50);
                    }
                    $(this).dialog('destroy');
                }
            }
        });
    }
函数myConfirm(dialogText、okFunc、cancelFunc、dialogTitle){
$('' 
+dialogText+“”)。对话框({
真的,
莫代尔:是的,
可调整大小:false,
宽度:“自动”,
标题:对话框标题| |“确认”,
身高:75,
职位:{
我的“中心”,
在“中心”,
的:窗口
},
按钮:{
好的:函数(){
if(typeof(okFunc)==“函数”){
设置超时(okFunc,50);
}
$(this.dialog('destroy');
},
取消:函数(){
if(typeof(cancelFunc)==“函数”){
setTimeout(cancelFunc,50);
}
$(this.dialog('destroy');
}
}
});
}
但是当我第一次打开它调用
myConfirm
功能时,页面滚动到顶部,当我向下滚动以单击对话框时,它再次将滚动发送回顶部,然后我需要再次向下滚动,现在我可以单击对话框按钮。第一次之后就可以了

我需要设置动态文本框和功能按钮点击,所以我创建它的动态。我也在InternetExplorer上测试了它,它工作得很好


请告知我如何修复word加载项。

调用函数时,您可以尝试以下代码:-

onclick="myConfirm();return false;"
只需在函数名后面添加“return false;”,如上所示

编辑1:-

$form.show().dialog({
                close: function (event) { event.preventDefault(); }
                resizable: false,
                etc....
            });
或者您也可以从函数返回false。

编辑2:-

$form.show().dialog({
                close: function (event) { event.preventDefault(); }
                resizable: false,
                etc....
            });

这个函数怎么叫?它是从
来的吗?@RoryMcCrossan没有内部锚点击方法,我也使用了e.preventDefault();内部锚点单击方法。我调用了myConfirm内部单击方法,如:$(#use design')。在(“单击”,函数(e){e.preventDefault();myConfirm(params);});请在回答中查看编辑2,是否可以通过添加关闭方法进行尝试。还有一件事,当我向下滚动以单击对话框时,再次将滚动发送回顶部,然后我需要再次向下滚动,现在我可以单击对话框按钮,但此问题仅第一次出现。