2014-06-06 99 views
-1

我編寫了一個腳本,用於打開彈出窗口,搜索用戶,發現 用戶搜索窗口關閉,然後腳本在父窗口中顯示新用戶。在窗口之間傳遞並寫入

基本上我單獨嘗試了所有的腳本,但當我在窗口之間傳遞時遇到問題。前面的代碼不會傳遞找到的用戶,但只傳遞一個示例用戶來調試代碼。

這裏是腳本文件:

var orgWindow   
var searchWindow 

$(document).ready(function(){ 
    $(".add_participants").on("click", function() { 
    var orgWindow = window.self   
var searchWindow = window.open("http://localhost:3000/users/search", "_blank", 
     "left=200, top=100, height=300, width=300, menubar=yes"); 
    }); 
});   

function printUser(){ 
    var a = orgWindow.document.createElement("a"); 
    a.setAttribute("href","https://stackoverflow.com/users/show"); 
    a.setAttribute("id","3"); 

    var aText = orgWindow.document.createTextNode("elad bezalel"); 
    var img = orgWindow.document.createElement("img"); 
    img.setAttribute("alt","El4"); 
    img.setAttribute("src","/uploads/user/image/3/el4.jpg"); 
    img.setAttribute("height","150"); 
    img.setAttribute("width","150"); 

    myDiv = orgWindow.document.getElementById("par"); 

    a.appendChild(img); 

    var brk = orgWindow.document.createElement("br"); 
    a.appendChild(brk); 
    a.appendChild(aText); 

    myDiv.appendChild(a); 
} 

function add_user(){ 
    user_id = $("#button").data("user_id"); 
    window.close(searchWindow); 
    window.blur(searchWindow); 
    window.focus(orgWindow); 
    orgWindow.document.write(printUser()); 
    orgWindow.close(); 
}  

我使用jQuery(我將在稍後解釋)。當我點擊一個按鈕時,搜索窗口打開。然後,我在搜索窗口中找到一個用戶,然後單擊另一個按鈕(添加用戶),然後搜索窗口關閉,父窗口變得焦點。現在我試圖實現用戶圖像和名稱,但不知何故它不起作用。

我該如何修復腳本?

回答

0

注意,您必須聲明orgWindowsearchWindow在兩個不同範圍的變量,在全球範圍內(在頂部的兩個變種用法)和當地的點擊處理程序。這可能成爲你的問題的一部分。

0

我認爲兩個獨立的窗口上下文混雜在一起。

在主add_user頁面功能:

function add_user(user_id){ 
    window.close(searchWindow); 
    window.blur(searchWindow); 
    window.focus(orgWindow); 
    orgWindow.document.write(printUser()); 
    orgWindow.close(); 
} 

並在彈出:

$("#button").click($(window.opener).add_user($(this).data("user_id"))); 
相關問題