2012-03-08 10 views
5

पर अटक गई है, मैं 'टाइमलाइन' लेआउट के साथ एक फेसबुक पेज के लिए एक ऐप विकसित कर रहा हूं, और मैं चाहता हूं कि ऐप की ऊंचाई सामग्री के साथ स्केल करें, लेकिन ऐप की ऊंचाई तय की गई है 800px।टाइमलाइन पेज ऐप ऊंचाई 800px

वर्तमान ऐप सेटिंग्स से पता चलता है कि ऊंचाई 'तरल पदार्थ' पर सेट है, लेकिन मैंने ऊंचाई को यादृच्छिक मानों को ठीक करने का प्रयास किया है और कोई बदलाव नहीं देखा है।

मैं अपनी सामग्री की स्केल करने के लिए अपने ऐप की ऊंचाई कैसे प्राप्त करूं? किसी भी प्रतिक्रिया के लिए धन्यवाद।

अद्यतन: तो मेरे शरीर टैग में इसे जोड़ना काम किया।

<body onload="FB.Canvas.setSize({width: 810, height: 910})"> 
<div id="fb-root"></div> 
<script> 
(function() { 
    var e = document.createElement('script'); 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js#xfbml=1&appId=YOURAPPID; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
}()); 
</script> 

लेकिन मैं क्यों यह काम शून्य विचार है, इसलिए मुझे लगता है कि करने के लिए मैं अपने सवाल बदल देंगे 'क्या उपरोक्त कोड क्या करता है?' इसलिए मैं वास्तव में समझ सकता हूं कि अगली बार क्या कदम उठाने होंगे। यद्यपि सवाल को बंद करने के लिए मैं इसे अभी उत्तर के रूप में रखूंगा।

उत्तर

8

चीजों को सेट करने का यह सही तरीका है, मुझे बस थोड़ी देर के लिए इसे देखना था और दस्तावेज़ीकरण के तरीके को कई बार पढ़ना पड़ा। एफबी-रूट div के नीचे निम्नलिखित को एक चैंप की तरह काम करना।

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'YOURAPPID', // App ID 
     channelUrl: '/channel.html', // Channel File 
     status: true, // check login status 
     cookie: true, // enable cookies to allow the server to access the session 
     xfbml: true // parse XFBML 
    }); 
    FB.Canvas.setAutoGrow(); //Resizes the iframe to fit content 
}; 
// Load the SDK Asynchronously 
(function (d) { 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) { return; } 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
} (document)); 
+1

'setAutoResize' deprecates है [यहां] (https उल्लेख किया;:

शरीर {छिपा अतिप्रवाह:}

मैं भी एक शरीर शैली, जबकि पृष्ठ लोड एक पल के लिए प्रदर्शित होने से रोकने के लिए स्क्रॉलबार शामिल : //developers.facebook.com/docs/reference/javascript/FB.Canvas.setAutoResize/)। आपको 'setAutoGrow' का उपयोग करना चाहिए। –

+0

अच्छा पकड़ो! मैं जवाब अपडेट करूंगा। धन्यवाद! – Tuck

+0

यह iFramed ऐप के साथ कैसे काम कर सकता है? मुझे क्रॉस साइट स्क्रिप्टिंग समस्याएं मिलती हैं जो इसे काम करने से रोकती हैं। कोई विचार? धन्यवाद! –

0

एम्बेड जावास्क्रिप्ट कोड आइफ्रेम

<script type="text/javascript"> 
    window.fbAsyncInit = function() { 
    FB.Canvas.setAutoResize(100); 
    } 

    function sizeChangeCallback() { 
    FB.Canvas.setSize({ width: 810, height:1300 }); 
    } 
    </script> 
<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
FB.init({ 
appId : 'YOUR APP ID', 
status : true, 
cookie : true, 
xfbml : true 
}); 
</script> 
0

की ऊंचाई बढ़ाने के आशीष से प्रतिक्रिया मेरे लिए अच्छी तरह से काम किया।

संबंधित मुद्दे