2015-04-13 22 views
6

Trang web một trang của tôi có một số sản phẩm và chi tiết sản phẩm xuất hiện dưới dạng cửa sổ bật lên đơn giản khi được nhấp. Đối với mỗi sản phẩm có Facebook share. Nhưng khi tôi Facebook chia sẻ url, hãy nói www.example.com#product1 trong url được chia sẻ #product1 bị tước.URL chia sẻ Facebook có mã băm

FB.ui({ 
    method: 'share', 
    href: 'http://example.com/#product1', 
}, function(response){}); 

Khi tôi chia sẻ, chỉ có http://example.com/, chứ không phải http://example.com/#product1. Tôi muốn URL đầy đủ được chia sẻ như http://example.com/#product1. Nó bị tước đi bằng cách nào đó.

Làm cách nào để tránh điều này?

+0

cũng Vui lòng cung cấp một số đoạn mã. –

+1

Bạn cần một URL riêng cho từng phần nội dung riêng lẻ mà bạn muốn chia sẻ. (Một hàm băm khác không làm cho chúng khác các URL; băm là một cấu trúc hoàn toàn phía máy khách.) – CBroe

+0

@sasha: Tôi không nghĩ rằng tôi yêu cầu mã để giải thích. Khi tôi chia sẻ url trong facebook tôi cần như thế này www.example.com # product1. Nhưng điều này chỉ đến như www.example.com. # Product1 bị tước khi được chia sẻ trên Facebook. – noob

Trả lời

4

Giống như đề cập của CBroe, URL chỉ mục của Facebook và # không được coi là một phần của URL.

Giải pháp là sử dụng ký hiệu "hashbang" #! thay thế. Facebook theo sau Google Ajax Specification để cho phép lập chỉ mục, trong trường hợp này là các trang web Ajax.

Hiệu ứng là http://www.example.com/#!/product1 sẽ được viết lại và thay vào đó truy vấn tới máy chủ của bạn sẽ trở thành http://www.example.com/?_escaped_fragment_=/product1. Đổi lại, bạn có thể nắm bắt điều đó trên máy chủ của mình và trả lời bằng một trang dành riêng cho sản phẩm đó.

Bạn có thể đọc một câu trả lời phức tạp hơn ở đây: https://stackoverflow.com/a/15024853/561485

Phần quan trọng nhất là trang web của bạn sẽ có thể cung cấp các trang dành riêng cho từng sản phẩm; nếu bạn chỉ có các trang chỉ mục, sử dụng ký hiệu # sẽ luôn chia sẻ cùng một url.

+0

Nếu bạn chia sẻ một URL trên Facebook với một định danh mảnh (phần sau #), thì Facebook sẽ giữ nó. – Flimm

1

Hiện tại, Facebook và Twitter không cho phép chia sẻ URL chứa thẻ #. Tuy nhiên bạn có thể chia sẻ URL bằng cách sử dụng %23 thay vì #

<a class="twitter-share" href="https://twitter.com/intent/tweet?url=http://www.goparties.com/%23/party/{{id}}" target="_blank"> 
+0

Nếu bạn chia sẻ một URL trên Facebook với một định danh mảnh (phần sau #), thì Facebook sẽ giữ nó. – Flimm

+0

Nó không hiệu quả với tôi. Tôi nghĩ chính xác như nhau, nhưng thật đáng buồn nó không phải là một cách để nó: ( –

0

Phụ thuộc vào nhu cầu và làm thế nào nó đang được thực hiện, nó có thể được thực hiện bằng cách sử dụng API goo.gl để tạo ra một liên kết có thể chia sẻ độc đáo.

Hai cách triển khai thực hiện như sau: 1. Theo cách thủ công, chỉ cần truy cập goo.gl và đăng liên kết đầy đủ của bạn bao gồm #hash_tag (nó sẽ chia sẻ qua Facebook) 2. Sử dụng API cho các tác vụ chia sẻ tự động. .. chẳng hạn như ứng dụng, v.v., sử dụng API ngắn hơn của goo.gl url.

1

Bạn cũng có thể thoát khỏi url với encodeURIComponent

FB.ui({ 
    method: 'share', 
    href: encodeURIComponent('http://example.com/#product1'), 
}, function(response){}); 
Các vấn đề liên quan