2011-09-02 35 views
9

im bằng cách sử dụng các nút http://sharethis.com/ để cung cấp cho người dùng trên trang web một cách đơn giản để chia sẻ nội dung.Cách tạo động "Chia sẻ nút này" với URL tùy chỉnh có chức năng javascript?

Họ có thông tin về "các nút tùy chỉnh" ở đây: http://help.sharethis.com/customization/custom-buttons

Dường như chỉ định URL, trong ví dụ tất cả họ phải nó chỉ html như thế này:

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

Nhưng tôi cần phải có thể tự động tạo các nút khi đang di chuyển mà không cần tải lại trang. Vì vậy, trong một ứng dụng flash tôi đang xây dựng tôi có một "nút chia sẻ" kích hoạt một chức năng javascript trên trang web mà làm cho một "popup" div mờ dần vào trung tâm của màn hình mà tôi muốn hiển thị các chia sẻ nút. Tùy thuộc vào nút chia sẻ mà ai đó nhấp vào, nút này sẽ cần phải có URL được tạo động.

Điều quan trọng là nếu họ đóng hộp thoại, sau đó nhấp lại vào nút chia sẻ, tôi hy vọng mã sẽ chỉ ghi đè mã cũ bằng các nút mới, với url/tiêu đề mới.

Vì vậy, tôi đã tạo hàm javascript này mà tôi gọi từ flash, trong khi chuyển url từ flash. Tôi đặt kịch bản và mọi thứ bên trong div "popup" của tôi, hy vọng rằng các nút sẽ được hiển thị bên trong 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(); 
} 

ai cũng có thể đăng ví dụ về cách tôi có thể thực hiện việc này mà không cần tải lại trang?

EDIT: @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> 

Về cơ bản không có gì xảy ra. Tôi ghét sử dụng javascript bởi vì tôi thực sự không có ý tưởng làm thế nào để có được thông báo lỗi hoặc gỡ lỗi. Khi tôi làm việc với flex, tôi có một trình gỡ rối/bàn điều khiển tuyệt vời để giải quyết. Vì vậy, xin lỗi tôi gặp sự cố khi cung cấp thêm thông tin. Tôi đã thông báo khi tôi chỉ xóa

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

Cửa sổ bật lên này xuất hiện.

Nhưng nếu tôi có mã setAttribute ở trên bên trong hàm, cửa sổ bật lên sẽ không bao giờ xuất hiện, vì vậy, giả sử một điều gì đó trong mã đó đang phá vỡ nó. Bất kỳ đề xuất? Hoặc ít nhất một cách tôi có thể sử dụng chrome để cho tôi biết lỗi là gì? Tôi đã thử bàn điều khiển yếu tố kiểm tra nhưng không có gì xuất hiện ở đó khi tôi kích hoạt chức năng.

Ngoài ra, trong ở phía trên cùng của mã của tôi họ đã cho tôi sử dụng:

<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> 

Tôi có nên sử dụng stLight.locateElements(); hơn stButtons.locateElements();

+0

Có lỗi đánh máy, bạn có 'chann' và 'chaan', đó là lý do tại sao nó không hoạt động, thay đổi 'chann' thành 'chaan' cho tiêu đề và nó sẽ làm việc kỳ diệu. Đối với các hồ sơ các công cụ> Javacript giao diện điều khiển trong chrome sẽ giúp bạn có được trình gỡ rối. Nếu bạn đến đó trước khi bạn thay đổi, nó sẽ có một lỗi 'Uncaught ReferenceError: chann không được xác định' –

Trả lời

15

Tôi đã sử dụng các

stButtons.locateElements(); 

chức năng để tạo ra bất kỳ nút mới sau khi tải nội dung thông qua AJAX, tôi tưởng tượng nó sẽ làm việc cho điều này quá.

Câu hỏi này có thể là của một số hỗ trợ thêm:

Sharethis button does not work on pages loaded via ajax

Better Giải pháp:

Hãy <div> của bạn và chắc chắn rằng tất cả các <span> s có ID, nếu không bạn có thể cung cấp cho họ các lớp học nhưng bạn sẽ cần phải lặp qua tất cả chúng.

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

Vì vậy, bạn đang nói tôi sẽ chỉ làm cho các lớp span trong html ... Sau đó, những gì tôi có thể làm là trong chức năng được kích hoạt từ đèn flash ... chỉ cần sử dụng 'stButtons.locateElements();' bằng cách nào đó thay đổi URL/TITLE khi chức năng được chạy? Bạn có phiền khi chỉ cho tôi cách nó được sử dụng để thay đổi url/tiêu đề không? Xin lỗi, im khá tốt với actionsctipt. Rất mới với javascript và ajax. Lấy làm tiếc! – brybam

+0

là những gì sau của bạn? Đó là một chút thô. –

+0

tuyệt vời, điều đó có ý nghĩa. Điều đó trông giống như chính xác những gì im đang cố gắng làm ... nhưng sau một thử nghiệm Nó chỉ đơn giản là không làm việc. Tôi đã đăng một số thông tin ở trên. Tâm trí đang xem nhanh bản chỉnh sửa? Cảm ơn rất nhiều! – brybam

Các vấn đề liên quan