1

我正在努力实现一个功能来打开一个带有外部链接的新窗口。我正在创建动态内容,并想编写一个函数,用给定的链接打开一个弹出/弹出窗口。请帮忙。我喜欢 jquery 对话框和 lightwindo 等。但是我无法实现其中的任何一个,任何帮助都将是 gerat,我对这个假设的小问题感到困惑和沮丧。. . 到目前为止,没有任何选项对他们有用。这里是我如何显示我的结果的代码,以及我认为我必须如何调用该函数来打开一个新窗口。所以这里的第二个功能是我需要一些帮助的功能,打开一个显示信息的漂亮弹出窗口..

// --------------------- display the course results -> structuring the returned array, to output all information into a table ----------------------
function displayCourses()
{

    var str = ' <table border="0" width="530">' +
                '<tr>' +
                    '<td width="150">Title / course code</td>' +
                    '<td>INFO</td>' +
                '</tr>';

    if(curCourseList == null)
    {
        str = str + '<tr><td colspan="2"><div id="msgDips"></div></td></tr>';
    }
    else
    {
        for (var i = 0; i < curCourseList.length; i++)
        {
            str = str + '<tr><td valign="top" width="150"><a style="cursor:pointer;" onclick="showCourse(\''+curCourseList[i][0]+'\')" >' + curCourseList[i][0] + ' <br /> </a>' + curCourseList[i][1] +'<br>'+ curCourseList[i][3] +'<br /><br />'+ curCourseList[i][4] +'</td><td>' + curCourseList[i][2] +'</td></tr>';
        }
    }

    str = str + '</table>';

    document.getElementById("courseContainer").innerHTML = str;
    if(curCourseList == null)
    {
        getLangToken('99');
    }

}    
function showCourse(code)
{
    //alert(1)
    $.ajax({
        async:false,
        type: "POST",
        url: 'formPostsUser.php?reqtype=getCourse',
        data:'coursecode='+ code,
        success: function(data) 
        {
            newwindow=window.open(url,'name','height=200,width=150');
    if (window.focus) {newwindow.focus()}
    return false;
        }
    });
}

认真地,任何帮助都将得到极大的赞赏。我在这么深的狗屎atm

编辑 - - - - - - - -

这是我想替换的 window.open 位以打开一个漂亮的弹出窗口,而不是新的浏览器窗口或页面

4

3 回答 3

1

我不知道您为什么说对话框不起作用,或者特别是如果 jQuery UI 对话框不适合您,但以防万一:

$(function() {
    $("<div id='helpDialog' style='display:none' />").appendTo(document);
    $("#helpDialog").dialog({
        autoOpen: false
    });
    $("#helpDialog").dialog('option', 'buttons', {
        "Close": function() {
            $(this).dialog("close");
        }
    })
});

function helpPopUp(page, height, width) {
    $("#helpDialog").dialog('option', 'height', height);
    $("#helpDialog").dialog('option', 'width', width);
    $('#helpDialog').load(page);
    $('#helpDialog').dialog("open");
}
helpPopUp('#helpDialog', 'Help/Summary.html', 550, 750);

您当然可以将 IF 修改.load(page)为自定义 IF 需要在您的 url 中引用该页面。

这是上面的一个简单示例,带有一个轻微的 mod 来加载您的表格而不是页面:http: //jsfiddle.net/MarkSchultheiss/ABqrD/1/

于 2012-04-23T19:04:45.973 回答
0

如果您通过用户交互以外的任何方式触发窗口打开,则很可能会被阻止。您是否查看过与此相关的通知?

于 2012-04-23T17:32:33.393 回答
0

如果您不想使用真正的弹出窗口,您可以尝试<div>在页面上方创建一个“悬停”,例如

.hoverwindow {
     position:absolute; 
     width: ...px; 
     height:...px; 
     margin:auto;
     z-index:10; /*ensure that it's displayed on top*/
}

您可以通过对您的功能进行小的修改来做到这一点:

function showCourse(code)
{

$.ajax({
    async:false,
    type: "POST",
    url: 'formPostsUser.php?reqtype=getCourse',
    data:'coursecode='+ code,
    success: function(data) 
    {
        var newwindow = $('<div class="hoverwindow" />');
        newwindow.html(data).appendTo('body');
    }
});
}

虽然坦率地说,这几乎是“弹出窗口”插件所做的,但如果您搜索它,所有这些都应该在网上很容易获得。因此,为什么我没有费心去实际尝试和测试这段代码——它只是为了让你知道你能做什么。

于 2012-04-23T18:00:53.097 回答