0

現在のページの URL ではなく、Facebook の共有ボタンに別の URL を指定したいと思います。

asp.net の背後で URL を変更しようとしましたが、成功しませんでした。

誰かがこれについて助けてくれれば幸いです。

私が使用したいくつかのコードは、次のとおりです。

これはフロントサイドスクリプトです

<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript">
</script>
<script type="text/javascript">
function fbs_click() {
u = location.href;
t = document.title;
window.open('http://www.facebook.com/share.php?u=' + encodeURIComponent(u) +
'&t=' + encodeURIComponent(t), 'share', 'toolbar=0,status=0,width=626,height=436');
return false;
}
</script>

これはシェアボタン

<a name="fb_share" runat="server" id="aFbShare" type="button" class="sharelink">Paylaş</a>

これは私が後ろでやったことです

string wishListUrl = SEOHelper.GetWishlistUrl(NopContext.Current.User.CustomerGuid);
aFbShare.Attributes.Add("onclick", "fbs_click()");
aFbShare.Attributes.Add("target", "_blank");
aFbShare.HRef = "http://www.facebook.com/share.php?u=" + wishListUrl;
4

1 に答える 1

2

あなたが抱えている問題はこれです。ユーザーがボタンをクリックします。

<script type="text/javascript">
function fbs_click() {
   u = location.href;
   t = document.title;  
   window.open('http://www.facebook.com/share.php?u=' + encodeURIComponent(u) + '&t=' + encodeURIComponent(t), 'share', 'toolbar=0,status=0,width=626,height=436');
   return false;
}
</script>

この関数では、u は現在の URL、t は現在のタイトルです。Facebook に新しいウィンドウを開き、false を返します。これは、 false がブラウザにクリックをそれ以上処理する必要がないことを伝えるため、リンクが実際にたどられないことを意味します。あなたがすべきことは、コードビハインドを変更することです:

string desiredTitle = "My Wishlist";
string wishListUrl = SEOHelper.GetWishlistUrl(NopContext.Current.User.CustomerGuid);
aFbShare.Attributes.Add("onclick", "fbs_click('" + wishListUrl + "', '" + desiredTitle + "')");

クライアント スクリプトを次のように変更します。

<script type="text/javascript">
function fbs_click(url, title) {
   window.open('http://www.facebook.com/share.php?u=' + encodeURIComponent(url) + '&t=' + encodeURIComponent(title), 'share', 'toolbar=0,status=0,width=626,height=436');
   return false;
}
</script>

現在のタイトルを維持する必要がある場合は、onclick 呼び出しからタイトル変数と関数シグネチャを削除し、以前と同じようにドキュメントからタイトルを取得します。

于 2012-07-24T13:04:14.443 に答える