6

मैं जावास्क्रिप्ट चर के आधार पर नीचे fb टिप्पणियों प्लगइन के लिए डेटा-href को गतिशील रूप से बदलना चाहता हूं। मैं एक फ्लैश एसएफएफ फ़ाइल चला रहा हूं और जावास्क्रिप्ट फ़ंक्शन के माध्यम से एचटीएमएल रैपर में डेटा-href के लिए नया लिंक पास कर रहा हूं। जब मैं ऐसा करता हूं, तो मैं नए डेटा-href लिंक को रीफ्रेश करने के लिए fb टिप्पणियां प्लगइन चाहता हूं।जावास्क्रिप्ट चर के आधार पर फेसबुक टिप्पणियां प्लगइन यूआरएल गतिशील रूप से कैसे बदलें?

<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div> 

नामक जावास्क्रिप्ट समारोह टिप्पणियां प्लगइन के लिए नई कड़ी में गुजर:

function changeCommentsUrl(newUrl){ 
// should refresh fb comments plugin for the "newUrl" variable 
} 

उत्तर

12

यह प्रारंभिक टिप्पणी बॉक्स, स्क्रिप्ट के निष्पादित होगा जब टिप्पणियों div आवरण स्पष्ट और एचटीएमएल 5 टिप्पणी की जगह लेगा लोड होगा नए यूआरएल के साथ बॉक्स। जेएस एसडीके फिर नए बॉक्स का विश्लेषण करेगा।

इस काम के लिए जेएस एसडीके की आवश्यकता है। के लिए डोम हेरफेर से प्रस्तुत करना xfbml


<div id="comments"> 
<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="www.example.com" data-num-posts="20" data-width="380"></div> 
</div> 
<script> 
function changeCommentsUrl(newUrl){ 
// should refresh fb comments plugin for the "newUrl" variable 
document.getElementById('comments').innerHTML=''; 
parser=document.getElementById('comments'); 
parser.innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+newUrl+'" data-num-posts="20" data-width="380"></div>'; 
FB.XFBML.parse(parser); 
} 
</script> 

उपयोगकर्ता हल करने के लिए https://developers.facebook.com/docs/reference/javascript/

ठीक देखें:

document.getElementById('comments').innerHTML='<div style="float: left; padding-left:5px; min-height:500px" class="fb-comments" data-href="'+link+'" data-num-posts="20" data-width="380"></div>'; 
FB.XFBML.parse(document.getElementById('comments')); 

+1

कोड जोड़ा गया लेकिन जब स्क्रिप्ट निष्पादित होती है, तो यह टिप्पणी बॉक्स को साफ़ करती है लेकिन नई टिप्पणियां बॉक्स प्रकट नहीं होता है। मेरे पास जेएस एसडीके लोड है। – Steven

+0

आंतरिक HTML से प्रतिपादन में एक बग है, मैंने शीर्ष पर एक समाधान में संपादित किया है और इसे यहां परीक्षण किया है http://anotherfeed.com/login.php, पेज यूआरएल 1 और यूआरएल 2 पर 2 लिंक हैं, वे बदल देंगे और प्रस्तुत करेंगे टिप्पणी बॉक्स। –

+1

धन्यवाद, मैंने पार्सर वैरिएबल को हटाकर कोड संपादित किया था और यह काम करता था। ऐसा लगता है कि आपके संपादित कोड को भी काम करना चाहिए। document.getElementById ('टिप्पणियां')। आंतरिक HTML = '

'; \t FB.XFBML.parse (document.getElementById ('टिप्पणियां')); – Steven

2

मैं सबसे सरल और प्रभावी रास्ता बनाने के लिए पाया अपने रिकॉग करने के लिए फेसबुक टिप्पणी बॉक्स प्रत्येक पृष्ठ के व्यक्तिगत यूआरएल को नकारें (विशेष रूप से ई-कॉमर्स साइट्स के लिए अच्छा)।

अपने वेबसाइट टेम्पलेट के अपने शीर्ष हैडर भाग को यह स्क्रिप्ट जोड़ें (यह आपके टिप्पणी बॉक्स div के लिए डी डेटा-href मूल्य उत्पन्न करता है:

<script type="text/javascript" language="javascript">jQuery(“#FC”).attr(“data-href”, window.location.href.split(‘?’)[0]);</script> 

और फिर अपने टिप्पणी बॉक्स div पर, के लिए आईडी जोड़ने जावास्क्रिप्ट पर उत्पन्न मूल्य:।

<div id="FC" class="fb-comments" data-href="" data-width="700" data-numposts="5" data-colorscheme="light"> 

देखा मैं इतना समय समर्पित इस अखरोट दरार करने के, मैं बस आप BRE के लिए कुछ समय की बचत करने के लिए साझा करने के लिए किया था एके! चीयर्स!

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