如何在nuxt网址中删除/?fbclid = ...

时间:2020-02-13 13:19:25

标签: javascript facebook vue.js nuxt.js

您好,我想从我的主机网址中删除Facebook分析强制网址参数/?fbclid= https://www.example.com/?fbclid=...,当通过单击url从Facebook重定向时,问题是nuxt-link-exact-如果使用此参数重定向,则不会应用活动类。 谢谢

4 个答案:

答案 0 :(得分:2)

在诸如https://www.example.com/?fbclid=...这样的简单情况下,其中 fbclid 是唯一的参数,它应该是这样的普通Javascript:

 <script>
  // ideally this is on top of page; works on bottom as well

  if(/^\?fbclid=/.test(location.search))
     location.replace(location.href.replace(/\?fbclid.+/, ""));

 </script>

这将检查?fbclid=...是否为URL搜索参数,并导航到删除该部分的相同位置。


也可以删除任何搜索参数,而不检查fbclid

 <script>
   if(location.search) location.replace(location.href.replace(/\?.+/, ""));
 </script>

答案 1 :(得分:1)

对于像https://www.example.com/?fbclid=...这样的简单情况,其中 fbclid 是第一个也是唯一的参数,可以通过简单的服务器配置来完成。

例如,将其放在.htaccess文件中:

RewriteEngine on
<if "%{QUERY_STRING} =~ /^fbclid=/">
 RewriteRule  .  %{REQUEST_URI}?   [R=301,L]
</if>

请注意?之后的%{REQUEST_URI}。它将完全删除查询字符串。


在其他情况下(在其他参数后面附加了 fbclid ),此示例不执行任何操作-为此需要更复杂的代码。

答案 2 :(得分:0)

我终于可以用以下方法解决它:

methods: {
  removeFacebookHook() {
    var fbParam = 'fbclid';

    // Check if param exists
    if (location.search.indexOf(fbParam + '=') !== -1) {
      var replace = '';

      try {
        var url = new URL(location);
        url.searchParams.delete(fbParam);
        replace = url.href;

        // Check if locale exists
        if (window.location.href.indexOf(this.locale) > -1) {
          window.history.replaceState(null, null, "/" + this.locale);
        };

      } catch (ex) {
        var regExp = new RegExp('[?&]' + fbParam + '=.*$');
        replace = location.search.replace(regExp, '');
        replace = location.pathname + replace + location.hash;
      }

      history.replaceState(null, '', replace);
    }
  }
}

借助此帖子modiyf urls 我使nuxt-i18n路由语言环境与href.indexOf一起使用! 不幸的是,nuxt alwaysRedirect让我删除了切换台...

答案 3 :(得分:0)

我使用 JavaScript 以一种非常简单的方式解决了 Facebook 查询字符串... 在您的布局页面或 MastrPage 中包含此脚本

  //facebook Route Script for Query string
   function faceBookQuery() {
       addEventListener('fetch', event => {
           let url = new URL(event.request.url)

           if (url.searchParams.has('fbclid'))
               url.searchParams.delete('fbclid')

           event.respondWith(
               fetch(url, event.request)
           );
       });
    }

享受