在不同页面的输入框之间发送数据

时间:2014-09-03 22:38:04

标签: javascript inputbox

我想制作一个输入框,用一个按钮等将数据发送到新标签(和新页面)中的另一个输入框。 我搜索了很多(网址数据传输& ...),但仍然不知道。 我很欣赏任何起点或某事。 谢谢 ! 编辑:它们是具有不同域的不同站点。 编辑2:我没有任何访问权限来编辑接收者页面。

3 个答案:

答案 0 :(得分:1)

您有数百万种选择。

您可以传递搜索参数,哈希,会话存储......

Sender Fiddle

$('#send').on('click', function(e) { 
    window.open('http://jsfiddle.net/cnckfzpy/3/' + "?data=" + $("#sen").val(), "_blank")
});

Receiver Fiddle(不起作用,但是给出了实施)

$('#rec').val(window.location.search.split('data=')[1]);

这里使用搜索参数方法。但正如我所说,你有很多选择可供选择。

答案 1 :(得分:1)

直到我知道更多,我会说localstorage是你需要的:

http://www.codediesel.com/javascript/sharing-messages-and-data-across-windows-using-localstorage/

因此,一个窗口保存数据(使用JSON.stringify),另一个窗口监听storage事件并使用JSON.parse解析该数据。此外,两个窗口可以一起发送和接收。

此处有更多信息 - https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage

2个标签的演示页 - http://html5demos.com/storage-events

答案 2 :(得分:0)

对于跨域消息,我建议您使用postMessage

Browser support足够公平,API非常简单:

//create popup window
var domain = 'http://scriptandstyle.com';
var myPopup = window.open(domain + '/windowPostMessageListener.html','myWindow');

//periodical message sender
setInterval(function(){
    var message = 'Hello!  The time is: ' + (new Date().getTime());
    console.log('blog.local:  sending message:  ' + message);
    myPopup.postMessage(message,domain); //send the message and target URI
},6000);

//listen to holla back
window.addEventListener('message',function(event) {
    if(event.origin !== 'http://scriptandstyle.com') return;
    console.log('received response:  ',event.data);
},false);

以上示例代码取自David Walsh的this article