Javascript 如何在母版页和站点页之间进行通信?

Javascript 如何在母版页和站点页之间进行通信?,javascript,sharepoint-2010,Javascript,Sharepoint 2010,我有一个SharePoint母版页,在母版页中,我尝试从列表中检索一些数据,并在使用我前面提到的母版页的网站页面中显示它们 但问题是,当我试图将在母版页中检索到的数据存储到隐藏字段时,我无法获取最新更新的数据。我没有使用隐藏字段,而是尝试使用cookie(一种jquery插件)来存储数据并将其保存到站点页面中。但是我也不能得到最新的数据 最后,我发现了一个问题:站点页面的document.ready()方法是在母版页的document.ready()方法之前调用的,因此即使页面发回,我也总是获取

我有一个SharePoint母版页,在母版页中,我尝试从列表中检索一些数据,并在使用我前面提到的母版页的网站页面中显示它们

但问题是,当我试图将在母版页中检索到的数据存储到隐藏字段时,我无法获取最新更新的数据。我没有使用隐藏字段,而是尝试使用cookie(一种jquery插件)来存储数据并将其保存到站点页面中。但是我也不能得到最新的数据

最后,我发现了一个问题:站点页面的
document.ready()
方法是在母版页的
document.ready()
方法之前调用的,因此即使页面发回,我也总是获取旧数据

在母版页和站点页之间有更好的沟通方式吗

或者是否有任何方法确保在站点页面的document.ready()之前调用母版页的document.ready()方法


我发现了一种解决这个问题的丑陋方法:我使用
setTimeout(“getTabTips()”,1000)
使站点页面的
document.ready()
在母版页之后调用。但实际上,它的工作并不完美!我真的很想为这个问题找到一个漂亮的答案,请帮帮我?

我有一个类似的问题,经过一些研究,我得出了相同的结论:使用cookies。我将它包装在一个名为
LocalConnection
的小类中:

LocalConnection使用回调,因此其语法应该非常熟悉。因为它使用回调,所以您甚至可以设置一个回调来告诉master其他页面已经准备好了

掌握

var c = new LocalConnection({
  name: 'mycookiename'
});
// start listening
c.listen();
c.addCallback('ready', function(pageId) {
  // sub page ready
});
子页面

var c = new LocalConnection({
  name: 'mycookiename'
});
// start listening
c.listen();
$(document).ready(function() {
  c.send('ready', 'somePageId');
});

对于LocalConnection,这不是完全必要的。事件排队并在接收者读取cookie时触发,因此主控可以“触发事件”,接收者页面将在它们打开时触发事件。

我使用
setTimeout()
延迟调用站点页面的
document.ready()
,问题就消失了。但它的效果不是很好,甚至有点笨拙。所以我想在这里找到一个更好的方法…我上面使用LocalConnection的例子会告诉你的母版页你的子页面准备好了。你试过了吗?它真的很漂亮。我将在我公司的sharepoint项目中使用它。这是百万分之一。