2012-01-05 40 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'); 

值将在原来的窗口中改变。