2011-09-02 12 views
9

वेबसाइट पर उपयोगकर्ताओं को सामग्री साझा करने का एक आसान तरीका देने के लिए http://sharethis.com/ बटन का उपयोग कर रहा हूं।जावास्क्रिप्ट फ़ंक्शन वाले कस्टम URL के साथ "इस बटन को साझा करें" गतिशील रूप से कैसे बनाएं?

वे "कस्टम बटन" यहाँ के बारे में जानकारी है: http://help.sharethis.com/customization/custom-buttons

यह URL निर्दिष्ट करने की तरह लग रहा है, उदाहरण के सारे वे अपनी बस एचटीएमएल इस तरह:

<span class="st_sharethis" st_url="http://mycustomurl.com" st_title="Sharing Rocks!" 
displayText="ShareThis"></span> 

लेकिन मैं करने की जरूरत है पृष्ठ को फिर से लोड किए बिना फ्लाई पर गतिशील रूप से बटन बनाने में सक्षम हो।

तो, एक फ्लैश एप्लिकेशन में मैं बिल्डिंग कर रहा हूं, मेरे पास "शेयर बटन" है जो वेबपृष्ठ पर एक जावास्क्रिप्ट फ़ंक्शन ट्रिगर करता है जो "पॉपअप" div को स्क्रीन के केंद्र में फीका करता है जिसे मैं साझा करना चाहता हूं बटन। किसी भी शेयर बटन पर क्लिक करने के आधार पर इसे गतिशील रूप से बनाए गए यूआरएल की आवश्यकता होगी।

यह महत्वपूर्ण है अगर वे संवाद बंद है, तो शेयर बटन पर क्लिक करें फिर से, उम्मीद कोड सिर्फ नया बटन के साथ पुराने कोड के ऊपर लिख देगा im, नया यूआरएल/खिताब के साथ।

तो, मैंने फ्लैश से यूआरएल पास करते समय, इस जावास्क्रिप्ट फ़ंक्शन को फ्लैश से कॉल किया है। मैंने अपनी "पॉपअप" div के अंदर स्क्रिप्ट और सबकुछ रखा, उम्मीद है कि बटन उस div के अंदर प्रस्तुत किए जाएंगे।

function shareChannel(theurl) 
{ 
//I cant seem to find an example of what to put here to load the buttons, and give them a custom URL and title 

//finally display the popup after the buttons are made and setup. 
displaypopup(); 
} 

क्या कोई संभवत: एक उदाहरण पोस्ट कर सकता है कि मैं पृष्ठ को फिर से लोड किए बिना ऐसा करने में सक्षम कैसे हो सकता हूं?

संपादित करें: @Cubed

<script type="text/javascript"> 
function shareChannel(chaan) 
      { 

      document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan); 
      document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!'); 

      stButtons.locateElements(); 

      centerPopupThree(); 
      loadPopupThree(); 
      } 

</script> 

मूल रूप से कुछ नहीं होता। मुझे जावास्क्रिप्ट का उपयोग करने से नफरत है क्योंकि मुझे वास्तव में कोई त्रुटि नहीं है कि त्रुटि संदेश या डीबग कैसे प्राप्त करें। जब मैं फ्लेक्स के साथ काम करता हूं, तो मेरे पास मैसेराउंड के साथ एक महान डीबगर/कंसोल होता है। तो, क्षमा करें मुझे अधिक जानकारी प्रदान करने में परेशानी है। मैंने नोटिस किया जब मैं केवल

document.getElementById('spID1').setAttribute('st_url', 'http://mycustomurl?chan='+chaan); 
       document.getElementById('spID1').setAttribute('st_title', 'Custom Title is ['+chann+'] it works!'); 

पॉपअप प्रकट होता है।

लेकिन अगर मैं समारोह के अंदर ऊपर setAttribute कोड है, पॉपअप प्रतीत होता है कभी नहीं, इसलिए कि कोड में im संभालने कुछ यह टूट रहा है। कोई सुझाव? या कम से कम एक तरीका मैं क्रोम का उपयोग करने के लिए मुझे बता सकता है कि त्रुटि क्या है? मैंने निरीक्षण तत्व कंसोल की कोशिश की लेकिन जब मैंने समारोह को ट्रिगर किया तो वहां कुछ भी नहीं दिखाई दिया।

<script type="text/javascript">var switchTo5x=true;</script> 
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"> 
</script><script type="text/javascript">stLight.options({publisher:'mypubidgoeshere'});</script> 

मैं बजाय stLight.locateElements();stButtons.locateElements();

+0

वहाँ कोड लिखने में कोई गलती आप 'chann' और 'Chaan' है कि क्यों यह काम नहीं कर रहा है, परिवर्तन शीर्षक के लिए 'Chaan' को 'chann' और यह चमत्कार काम करना चाहिए है,,। रिकॉर्ड के लिए क्रोम में उपकरण> जावाक्रिप्ट कंसोल आपको डीबगर पर ले जाएगा। यदि आप बदलने से पहले वहां जाते हैं, तो उसे एक त्रुटि होनी चाहिए 'अनकॉटेड रेफरेंस एरर: चैन परिभाषित नहीं किया गया है' –

उत्तर

15

प्रयोग करना चाहिए मैं

stButtons.locateElements(); 
उपयोग कर रहे हैं:

इसके अलावा, मेरे कोड के शीर्ष पर में वे मुझे इस्तेमाल किया था

समारोह AJAX के माध्यम से सामग्री लोड करने के बाद किसी भी नए बटन उत्पन्न करने के लिए, मैं कल्पना यह इस बात के लिए भी काम करेगा।

Sharethis button does not work on pages loaded via ajax

बेहतर समाधान::

यह सवाल भी कुछ सहायता के हो सकता है

अपने <div> करें और सुनिश्चित करें कि सभी <span> रों आईडी दिया है, अन्यथा आप उन्हें कक्षाएं दे सकते हैं, लेकिन आप उन सभी के माध्यम से फिर से शुरू करने की आवश्यकता होगी।

function shareChannel(theurl, thetitle) 
    { 
    document.getElementById('spanID1').setAttribute('st_url', theurl); 
    document.getElementById('spanID1').setAttribute('st_title', thetitle); 

    stButtons.locateElements(); 

    //finally display the popup after the buttons are made and setup. 
    displaypopup(); 
    } 
+0

तो, आप कह रहे हैं कि मैं सिर्फ HTML में अवधि कक्षाएं बनाउंगा ... फिर मैं जो कर सकता था वह मेरे फंक्शन से ट्रिगर किया गया फ़ंक्शन ... फ़ंक्शन चलाए जाने पर URL/TITLE को किसी भी तरह से बदलने के लिए 'stbuttons.locateElements();' का उपयोग करें? क्या आप मुझे दिखाएंगे कि इसका उपयोग यूआरएल/शीर्षक को बदलने के लिए कैसे किया जाता है? क्षमा करें, क्रियाकलाप के साथ बहुत अच्छा हूँ। जावास्क्रिप्ट और AJAX के लिए बहुत नया है। माफ़ कीजिये! – brybam

+0

यह है कि आपके बाद क्या है? यह थोड़ा मोटा है। –

+0

भयानक, यह समझ में आता है। ऐसा लगता है कि मैं क्या करने की कोशिश कर रहा हूं ... लेकिन एक परीक्षण के बाद यह बस काम नहीं कर रहा है। मैंने उपरोक्त कुछ जानकारी पोस्ट की है। संपादन पर एक त्वरित नजर डालने वाला मन? आपका बहुत बहुत धन्यवाद! – brybam