2012-04-23 63 views
1

我很努力地實現一個功能來打開一個帶有外部鏈接的新窗口。我正在創建動態內容,並且希望編寫一個可以打開彈出/彈出窗口的函數。請幫忙。我喜歡jquery對話框和lightwindo等,但我無法實現任何這些,任何幫助將是gerat,我堅持和沮喪與​​這個小小的問題。 。 。到目前爲止,沒有任何選項可用於他們。這裏是我如何顯示我的結果的代碼,以及我如何認爲我必須調用該函數才能打開一個新窗口。所以這裏的第二個功能是一個我需要一些幫助,打開顯示的信息一個不錯的彈出窗口..JavaScript彈出窗口打開外部網頁

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

並認真任何幫助將大大AP [preciated。我在這樣深的狗屎ATM

編輯---------------

這是window.open位我會liek更換打開一個漂亮的花式流行-up,沒有新的瀏覽器窗口或頁面

+0

,如果你在一個適當的彈出打開它你不需要的AJAX或類似的東西。只需將網址正確地放在一起,就像'var url ='http:// example.com''並調用'var newwindow = window.open(url,name,params);'完成了。根本不需要jQuery。 – Armatus 2012-04-23 17:30:09

+0

那newwindow位,我會騙人替換,用腳本打開一個不錯的彈出窗口,而不是新的瀏覽器窗口或標籤! – 2012-04-23 17:34:52

+0

你知道'+ ='操作符嗎? **爲什麼在的名稱中使用同步ajax請求?!** – ThiefMaster 2012-04-23 18:32:36

回答

0

如果觸發比通過用戶交互,將最有可能被阻止的其他任何窗口打開。您是否檢查過與此相關的通知?

+0

不是它的鏈接,用第一個函數創建,一旦用戶按下鏈接,它應該調用該函數並打開一個新的彈出窗口。 – 2012-04-23 17:34:05

+0

從您的代碼示例中,它將在AJAX回調中被調用。在大多數情況下,除直接/即時交互以外的任何內容都將被阻止。 – trickyzter 2012-04-23 17:37:55

+0

請參閱下面的答案更好地澄清:http://stackoverflow.com/questions/5308286/window-open-open-popup-instead-of-new-window – trickyzter 2012-04-23 17:38:32

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'); 
    } 
}); 
} 

雖然坦言這是一個很值得什麼插件「彈出窗口」這樣做這一切應該,如果你尋找它是隨時可在網上。因此,爲什麼我沒有費心嘗試和測試這些代碼 - 只是簡單介紹一下你可以做什麼。

+0

這裏的問題在於我相信的頁面結構。我提到,包括jquery插件如對話框ot燈箱在這裏失敗!他們不工作,因爲我的內容都是動態創建的,所以我需要在同一個JS文件中添加一個功能來打開一個漂亮的彈出窗口,而不是瀏覽器標籤或頁面!和代碼不起作用! – 2012-04-23 18:04:03

+0

我不認爲JS是誠實的! – 2012-04-23 18:04:36

+0

如果它可用,我不會寫在這裏!幾天後一直在嘗試這個!我有工作示例,使用差異頁面的插件!但不是在這個特定的情況! – 2012-04-23 18:08:14

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)是自定義IF需要引用網頁中的頁面。

這裏是上面有輕微國防部的一個簡單的示例來加載,而不是頁面的表格:http://jsfiddle.net/MarkSchultheiss/ABqrD/1/

+0

我不明白。我喜歡這個答案,並且你可以給我一個對話框,但是我沒有得到我應該實現的地方,並且讓我的鏈接工作來打開一個頁面!表格是doen,我的結果是deiplayed!我只需要一個彈出窗口,打開一個新的整個頁面來顯示與用戶點擊的項目相關的其他結果! – 2012-04-23 20:00:46

+0

在我發佈的腳本中,我需要修改功能showCourse以打開一個新的特定頁面,並在字符串上傳遞他們想要查看的項目! – 2012-04-23 20:01:51

+0

就像我不知道這是否應該進入我的JS文件,或實際的PHP頁面!?!?!?和一個div,我認爲不夠好,因爲我需要加載整個頁面,並在數據庫中運行一個新的查詢! – 2012-04-23 20:03:08