JavaScript-如何使用FB.Canvas.getPageInfo';s在回调函数外的高度
我试图在Facebook应用程序的画布上实现Scribd查看器,并使其适应用户的视口高度。JavaScript-如何使用FB.Canvas.getPageInfo';s在回调函数外的高度,javascript,facebook-canvas,scribd,Javascript,Facebook Canvas,Scribd,我试图在Facebook应用程序的画布上实现Scribd查看器,并使其适应用户的视口高度。 我的代码调用FB.init函数作为body的第一个元素 <div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : 'my-fb-app-id', status : true,
我的代码调用FB.init函数作为body的第一个元素
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'my-fb-app-id',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.Canvas.getPageInfo(function(info){
var viewportHeight = info.clientHeight - info.scrollTop - info.offsetTop;
FB.Canvas.setSize ({height: viewportHeight});
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/it_IT/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
window.fbAsyninit=函数(){
FB.init({
appId:“我的fb应用程序id”,
状态:正确,
曲奇:是的,
xfbml:是的,
真的,
});
FB.Canvas.getPageInfo(函数(信息){
var viewportHeight=info.clientHeight-info.scrollTop-info.offsetTop;
FB.Canvas.setSize({height:viewportHeight});
});
};
(职能(d){
var js,id='facebook jssdk';if(d.getElementById(id)){return;}
js=d.createElement('script');js.id=id;js.async=true;
js.src=“//connect.facebook.net/it\u it/all.js”;
d、 getElementsByTagName('head')[0].appendChild(js);
}(文件);
这样我可以调整iFrame的高度。现在,为了调整scribd阅读器的高度,我必须在回调外部使用viewportHeight变量。Scrbid读卡器代码:
<script type='text/javascript' src='http://www.scribd.com/javascripts/scribd_api.js'></script>
<div id='embedded_doc'><a href='http://www.scribd.com'>Scribd</a></div>
<script type='text/javascript'>
var scribd_doc = scribd.Document.getDoc(<? echo $doc_id; ?>, '<? echo $access_key; ?>' );
var onDocReady = function(e){
//scribd_doc.api.setPage(3);
}
scribd_doc.addParam( 'jsapi_version', 2 );
scribd_doc.addEventListener( 'docReady', onDocReady );
scribd_doc.addParam('height', viewportHeight );";
scribd_doc.write( 'embedded_doc' );
</script>
var scribd_doc=scribd.Document.getDoc(,'');
var onDocReady=函数(e){
//scribd_doc.api.setPage(3);
}
scribd_doc.addParam('jsapi_version',2);
scribd_doc.addEventListener('docReady',onDocReady);
scribd_doc.addParam(“高度”,视口高度);";
scribd_doc.write(‘嵌入式_doc’);
但是似乎在FB.canvas.getInfo()的回调函数内部的变量在外部看不到。已经尝试使用cookie,但我发现浏览器不允许在iFrame中存储cookie。如何解决(如果可能)?
window.fbAsyncInit=function(){
FB.init({
appId:“我的fb应用程序id”,
状态:正确,
曲奇:是的,
xfbml:是的,
真的,
});
FB.Canvas.getPageInfo(函数(信息){
var viewportHeight=info.clientHeight-info.scrollTop-info.offsetTop;
FB.Canvas.setSize({height:viewportHeight});
prepScribdDoc(视口高度);
});
};
var onDocReady=函数(e){
//scribd_doc.api.setPage(3);
警惕(“红眼”);
}
var prepScribdDoc=函数(视口高度){
var scribd_doc=scribd.Document.getDoc(,'');
scribd_doc.addParam('jsapi_version',2);
scribd_doc.addEventListener('docReady',onDocReady);
scribd_doc.addParam('height',viewportHeight);”;
scribd_doc.write(‘嵌入式_doc’);
}
您能单击我上面答案旁边的灰色复选标记使其变为绿色吗?谢谢:)
window.fbAsyncInit = function() {
FB.init({
appId : 'my-fb-app-id',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
FB.Canvas.getPageInfo(function(info){
var viewportHeight = info.clientHeight - info.scrollTop - info.offsetTop;
FB.Canvas.setSize ({height: viewportHeight});
prepScribdDoc(viewportHeight);
});
};
var onDocReady = function(e){
//scribd_doc.api.setPage(3);
alert('Red eye');
}
var prepScribdDoc = function(viewportHeight) {
var scribd_doc = scribd.Document.getDoc(<? echo $doc_id; ?>, '<? echo $access_key; ?>' );
scribd_doc.addParam( 'jsapi_version', 2 );
scribd_doc.addEventListener( 'docReady', onDocReady );
scribd_doc.addParam('height', viewportHeight );";
scribd_doc.write( 'embedded_doc' );
}