Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于加载HTML标题的jQuery UI对话框_Javascript_Html_Css_Jquery Ui - Fatal编程技术网

Javascript 用于加载HTML标题的jQuery UI对话框

Javascript 用于加载HTML标题的jQuery UI对话框,javascript,html,css,jquery-ui,Javascript,Html,Css,Jquery Ui,我使用jQueryUI对话框来显示从外部页面读取的弹出窗口。如何让它从外部HTML加载标题,而不是每次都在代码中更改标题?因为我也想要不同的头衔 有什么建议吗 function openDialog(url) { $("<div class='popupDialog'>Loading...</div>") .dialog({ autoOpen: true, closeOnEscape: true,

我使用jQueryUI对话框来显示从外部页面读取的弹出窗口。如何让它从外部HTML加载标题,而不是每次都在代码中更改标题?因为我也想要不同的头衔

有什么建议吗

function openDialog(url) {
   $("<div class='popupDialog'>Loading...</div>")
        .dialog({
            autoOpen: true,
            closeOnEscape: true,
            width: '900',
            height: '900',
            modal: true,
            title: 'Bonus Features',
            beforeClose: function(){   $(this).remove();   }
        }).bind('dialogclose', function() {
            jdialog.dialog('destroy');
        }).load(url, function() {
            $(this).dialog("option", "position", ['center', 'center'] );
        });

        adjustJQueryDialogOverlay();
    }

    $(window).resize(function() {
        $(".ui-dialog-content").dialog("option", "position", ['center', 'center']);
    });
函数openDialog(url){ $(“正在加载…”) .对话({ 自动打开:对, closeOnEscape:没错, 宽度:“900”, 高度:'900', 莫代尔:是的, 标题:“奖励功能”, beforeClose:function(){$(this.remove();} }).bind('dialogclose',function(){ 对话框('destroy'); }).load(url,函数(){ $(此).dialog(“选项”、“位置”、“中心”、“中心”); }); 调整jquerydialogoverlay(); } $(窗口)。调整大小(函数(){ $(“.ui对话框内容”).dialog(“选项”、“位置”、“中心”、“中心”); });
您似乎有两个问题。首先,简单一点。如何更改标题

jQuery对话框标题来自title参数。在代码中,您有:

title: 'Bonus Features'
但是,如果要更改函数签名以接受title参数,则可以将标题传递给函数,而不必一直担心更改代码

function openDialog(url, title) {
   $("<div class='popupDialog'>Loading...</div>").dialog({
   ...
   title: title,
   ...
   );
}
函数openDialog(url、标题){
$(“正在加载…”)。对话框({
...
标题:标题,,
...
);
}
现在来看一个复杂的问题:如何从目标页面获取标题。除了通过AJAX请求页面并将结果解析为XML/文本之外,我不确定是否有一种简单的方法可以实现这一点。如果您真的感兴趣,这里有一个链接


但我真的不想鼓励这样做。我的意思是,要求客户端脚本完成所有这些工作似乎有点过火。而且你不能保证它可以在不同的浏览器之间工作。相反,通过硬编码标题,将启动对话框所用的任何内容与页面标题关联起来会容易得多。

在“开放”事件中:

$(this).parent().find('.ui-dialog-title').html('Printed Card Designer');

你必须稍微使用它,才能让它使用你正在加载的页面的标题,而不是你正在加载的页面。你是在加载实际页面还是只加载一些文本或xml?我只需要它读取它加载的任何页面。实际页面。不幸的是,我不知道如何使用它。你可以将页面加载到对话框中。。然后检查$('title')的长度。长度并查看是否为两个(一个用于“主机”页面,另一个用于“对话框”页面)。如果到了这一步,请尝试确定哪个标题是哪个:获取“主机”的标题在将附加页面加载到dailog中并将其与jQuery数组中返回的标题文本进行比较之前,请先创建一个页面。这听起来更复杂,这也是我需要避免的。我希望HTML的标题是对话框本身的标题。我想这是不可能的。我真的很感谢您在这方面花费的时间和精力我们的答案。非常感谢。没问题。你是对的,这很复杂,但并非不可能。最终的效果是,在浏览器加载页面以分析标题时,你会有一个延迟,然后再显示对话框。