2012-01-05 44 views
0

我只知道在JavaScript的一些基本的東西,所以我需要一些幫助,這...通過鏈接傳遞變量並在新頁面中使用它們(JavaScript)?

我想要做的是: 有一個鏈接,打開一個新的窗口,在該窗口中使用2個變量傳遞給編輯一些內容。將某些文本更改爲第一個變量,並將該新窗口中的鏈接更改爲第二個變量的值。

這可能嗎?我不是在尋找確切的代碼,只是我可以看到的任何資源都會很好。

謝謝。

回答

1

雖然這在技術上可能是可行的,但它並不真正適合網絡,並導致安全弱點和用戶不希望的行爲,並且瀏覽器可能會阻止。將每個瀏覽器窗口視爲一個獨立的應用程序。你最好在相同的頁面/窗口內使用動態創建的div(或類似的)。

也許你可以解釋更多關於爲什麼你認爲你需要這個。

+0

好的,謝謝,我想我會避免這一點。 – DillPixel 2012-01-06 15:55:14

0

是的,有可能通過打開AA子窗口:

var popup = open(URL, 'Title', 'width=1000,height=420,scrollbars'); 

然後你就可以在父窗口的打開一個被訪問瓦爾:

parent.var = 'some value'; 

希望這正是你需要的。

0

我不知道,我已經明白你的意思到底是什麼,但這裏是一個腳本,它允許你編輯的新窗口中輸入到老時,其中一個內容:http://jsfiddle.net/Jpt3C/3/

JS

var newWindow; 
$('#foo').click(function() { 
    newWindow = window.open(); 
}); 
$('#bar').keydown(function() { 
    if (newWindow) { 
     newWindow.document.body.innerHTML = this.value; 
    } 
}); 

HTML

<a href="#" id="foo">Click me</a> 
<input type="text" id="bar" /> 
1

要打開窗口:

var myObject = new Object(); 
myObject.param1 = 'A'; 
myObject.param2 = 'B'; 
var windowPopup; 
if(window.showModelessDialog){ 
    windowPopup = window.showModelessDialog(path, myObject, ''); 
} else { 
    windowPopup = window.open(path, '_blank', ''); 
    windowPopup.myObject = myObject; 
} 

要在新窗口中讀取其中的內容:

var myObject = window.myObject; 
if(!myObject){ 
    if(window.dialogArguments){ 
     myObject = window.dialogArguments; 
    } 
} 
alert(myObject.param1); 

這是一個跨瀏覽器解決方案,適用於IE9。

也可以爲第二個窗口傳遞迴調。例如:

var myObject = new Object(); 
myObject.param1 = 'A'; 
myObject.param2 = 'B'; 
myObject.callback = function(param) {document.forms[0].field.value = param;} 

當你在新的窗口中myObject的參考做:

myObject.callback('value from the new window'); 

值將在原來的窗口中改變。