1

外部リンクで新しいウィンドウを開く機能を実装するのに苦労しています。動的コンテンツを作成しており、指定されたリンクでポップアップ ウィンドウを開く関数を作成したいと考えています。助けてください。jquery ダイアログ ボックスや lightwindo などが好きですが、これらのいずれも実装できません。. . これまでのところ、em で機能するオプションはありません。ここに、結果を表示する方法のコードと、新しいウィンドウを開くために関数を呼び出す必要があると思う方法を示します。したがって、ここでの 2 番目の関数は、情報を表示する素敵なポップアップ ウィンドウを開くために、いくつかの助けが必要な関数です..

// --------------------- 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);

.load(page)もちろん、 URL でページを参照する必要があるカスタム IFに変更することもできます。

これは、ページの代わりにテーブルをロードするためのわずかな変更を加えた上記の簡単なサンプルです: 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 に答える