Я пытаюсь реализовать средство просмотра Scribd на холсте приложения Facebook и позволяю ему адаптироваться к высоте видового экрана пользователя.
Мой код вызова функции FB.init в качестве самого первого элемента телаJavaScript - как использовать высоту FB.Canvas.getPageInfo вне функции обратного вызова
<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>
Таким образом, я регулирую высоту IFRAME. Теперь я должен использовать переменную viewportHeight вне обратного вызова, чтобы настроить высоту считывателя scribd. 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>
Но, кажется, что varaibles внутри функции обратного вызова FB.canvas.getInfo() не может быть видно снаружи. Уже пробовал с cookie, но я понял, что браузеры не позволяют хранить файлы cookie из iFrame.
Как бы я его разрешил (если это возможно)?
спасибо! это было так просто ...! – user1203806
Не могли бы вы щелкнуть по серой галочке рядом с моим вышеприведенным ответом, чтобы сделать ее зеленой? Благодаря :) – DMCS