2012-04-23 2 views
1

외부 링크를 사용하여 새 창을 여는 기능을 구현하는 데 어려움을 겪고 있습니다. 나는 동적 인 내용을 만들고 있는데 주어진 링크가있는 pop/up 윈도우를 여는 함수를 작성하려고한다. 도와주세요. 나는 jquery 대화 상자와 lightwindo 등을 좋아하지만, 이것들을 구현할 수 없다면 어떤 도움도 제라트가 될 것이고,이 작은 문제로 인해 좌절하고 좌절 할 것입니다. . . 지금까지는 아무 옵션도 작동하지 않았습니다. 여기 어떻게 내 결과를 표시하는 코드, 그리고 어떻게 내가 새 창을 여는 함수를 호출해야한다고 생각합니다. 그래서 여기에 두 번째 기능은 크게 AP [preciated 될 것입니다 내가 정보를 표시하는 좋은 팝업 창을 열려면, 몇 가지 도움이 필요 하나 ..자바 스크립트 팝업 외부 페이지 열기

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

그리고 심각하게 어떤 도움이다. 같은 깊은 똥 기압에서 오전

편집 ---------------

그것은 내가 멋진 멋진 팝업을 열 교체 liek 것 window.open 비트입니다 새 브라우저 창이 아니거나 새 페이지가 아닌 브라우저 창이나 페이지가 아닙니다.

+0

당신이 적절한 팝업에서 열 경우 그런 아약스 또는 아무것도 필요하지 않습니다. 단지'var url = 'http : // example.com'과 같이 URL을 함께 넣고'var newwindow = window.open (url, name, params); '을 호출하면 끝난다. jQuery가 전혀 필요 없다. – Armatus

+0

그 newwindow 비트, 좋은 팝업 창이 아닌 새 브라우저 창이나 탭을 여는 스크립트로 교체하겠습니까? –

+0

'+ = '연산자에 대해 알고 있습니까? ** 그리고 왜 여기에 동기식 아약스 요청을 사용합니까? ** ** – ThiefMaster

답변

0

사용자 상호 작용 이외의 방법으로 창을 열면 대부분 차단됩니다. 이것에 관한 통지를 확인 했습니까?

+0

아니요 첫 번째 함수로 만든 링크입니다. 사용자가 링크를 누르면 함수가 호출되어 새로운 팝업이 열립니다. –

+0

코드 샘플에서 AJAX 콜백 내부에서 호출됩니다. 대부분의 경우 직접/즉각적인 상호 작용 이외의 조치는 차단됩니다. – trickyzter

+0

더 나은 설명을 위해 다음 답변을 참조하십시오. http://stackoverflow.com/questions/5308286/window-open-open-popup-instead-of-new-window – trickyzter

0

당신이 진짜 팝업을 사용하지 않으려면, 당신은 당신의 작은 수정이 할 수

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

처럼 뭔가 페이지 위의 <div>있는 '마우스 오버'를 만들려고 할 수 귀하 기능 :

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

여기의 문제는 내가 믿는 페이지 구조 내에 있습니다. 나는 대화 상자 ot 라이트 박스와 같은 jquery 플러그인을 포함하여 여기에 실패했다고 언급했다! 내 콘텐츠가 모두 동적으로 만들어지기 때문에 작동하지 않습니다. 따라서 동일한 JS 파일 내에서 브라우저 탭이나 페이지 대신 멋진 팝업 창을 열려면 fuinction이 필요합니다. 그리고 teh 코드가 작동하지 않았습니다! –

+0

나는 정직하게 JS를 얻지 못한다! –

+0

사용할 수 있으면 여기에 쓰지 않겠습니다! 며칠 이래로 노력하고 있습니다! diff 페이지에서 작동하는 플러그인을 사용하여 예제를 작성했습니다! 그러나이 특별한 경우에는 아닙니다! –

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/

+0

나는 그것을 얻지 않는다. 나는 대답을 좋아하고, 당신은 나에게 대화 상자를 보여줄 수있다. 그러나 나는 이것을 구현하기로되어 있고, 페이지를 열어 내 링크를 만든다. 테이블이 열리고 내 결과가 다시 표시됩니다! 사용자가 클릭 한 항목과 관련된 다른 결과를 표시하기 위해 새 전체 페이지를 열려면 팝업이 필요합니다. –

+0

스크립트에 내가 게시, 기능을 보여줄 수 있습니다. 새로운 특정 페이지를 열려면 수정할 필요가 있습니다. 문자열을보고 싶은 항목을 전달했습니다! –

+0

내가 JS 파일이나 실제 PHP 페이지에 들어가기로되어 있는지 잘 모르는 것 같아!?!?!? 그리고 div, 내가 전체 페이지를로드해야하고 DB에서 whole 새 쿼리를 실행해야하므로 충분히 믿을만하지 않습니다. –