如何在 js 中转换 url 以便在 facebook 分享按钮中使用?

How do I transform url in js for using in facebook share button?

首先,我有动态生成的页面,它的url是

https://example.com/main?id=First%20Theory&id2=A&id3=87710

当我转到 Facebook Developers Tool Page 并为共享按钮生成 link 时,它会生成以下内容:

https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fexample.com%2Fmain%3Fid%3DFirst%2BTheory%26id2%3DA%26id3%3D87710&src=sdkpreparse

我在 Facebook 分享按钮中使用了这个 link,效果很好,分享也很好。

然后我需要为此使用变量 link 因为我的页面是动态生成的。

所以我在 js 中调用 url 并将 link 像变量一样放置:

<a class="fb-share-button"
     [href]="urlToCopy"
     data-layout="button_count" data-size="small">
     <a target="_blank"
       [href]="'https://www.facebook.com/sharer/sharer.php?u=' + urlToCopy + ';src=sdkpreparse'"
       class="fb-xfbml-parse-ignore">{{urlToCopy}}</a>
</a>    

其中 url复制

https://example.com/main?id=First%20Theory&id2=A&id3=87710

然后当我使用这个分享按钮分享时,Facebook 模式 window 打开时会出现奇怪的 url

https://www.facebook.com/sharer/sharer.php?u=https://example.com/main?id=First%20Theory&id2=A&id3=87710;src=sdkpreparse

并且共享无法正常工作。

我该如何解决这个问题,我应该对 js 做些什么 url 转换才能在 facebook 分享按钮中使用它?

您在这里所做的是将一个 URL 作为查询字符串参数的值引入另一个 URL - 因此第一个需要正确 URL 编码.

对其应用encodeURIComponent