Якорная метка - не получает логи на mousedown в iphone7 / 6s plus - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь записать некоторые события на моем сайте.Я добавил слушателя mousedown в свой документ и получил события для нажатия на любой элемент.Я делаю запрос на моем сервере всякий раз, когда любой элемент нажимается.Он отлично работает в браузере рабочего стола и на мобильном телефоне Android.Но в iphone / safari происходит захват события для тега привязки, но перед отправкой запроса на сервер он переходит на другую страницу.И мой журнал не сохраняется на сервере.

Я добавил список следующим образом:

   window.addEventListener("mousedown", function(e) {
console.log("mouse donwn called>>")
var { value, innerHTML, type, tagName,  } = e.target || {};
var params = {value,innerHTML, type,tagName};
  fetch("http://127.0.0.1:6360/log-tracking", {
      method: "POST",
      headers: {
          "Content-type": "application/json",
          Accept: "application/json"
      },
      body: JSON.stringify(params)
  });
});

И мой сервер:

  app.all("/log-tracking", async (req, resp) => {
     console.log("server called>>>>>>>>");

     });

Но для тега привязки в iphone6s / 7 нет сохраненного журнала.

Пожалуйста, дайте любые предложения по этому поводу.

1 Ответ

0 голосов
/ 27 августа 2018

Поскольку вы получаете событие отключения мыши в Windows. Итак, здесь я поставил условие, что если у вас есть событие в теге привязки, которое остановит перенаправление по умолчанию по умолчанию и сохранит ваш журнал для успешной отправки.после получения ответа из файла журнала.он перенаправит страницу на целевой URL.

window.addEventListener("mousedown", function(e) {

if(e.target.tagName.toLowerCase() === 'a')
{
  e.preventDefault();
  var url = e.target.href; //this is the url where the anchor tag points to.
  var { value, innerHTML, type, tagName,  } = e.target || {};
  var params = {value,innerHTML, type,tagName};
  fetch("http://127.0.0.1:6360/log-tracking", {
   method: "POST",
   headers: {
      "Content-type": "application/json",
       Accept: "application/json"
   },
   body: JSON.stringify(params)

   }).then(function(response) {
     window.location=url;
   });
}
else 
{ 
 console.log("mouse donwn called>>")
 var { value, innerHTML, type, tagName,  } = e.target || {};
 var params = {value,innerHTML, type,tagName};
 fetch("http://127.0.0.1:6360/log-tracking", {
   method: "POST",
   headers: {
      "Content-type": "application/json",
       Accept: "application/json"
   },
   body: JSON.stringify(params)
  });
}
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...