Проблема с диалогами подтверждения и пикселем Facebook в chrome
Я столкнулся со странной проблемой с Chrome и Facebook Pixel, и мне интересно, сталкивались ли другие с тем же самым.
В Chrome, и только в Chrome, диалоги подтверждения javascript внезапно вышли из строя на нашем сайте в последнее время. Проблема в том, что диалоговое окно появится просто отлично, но затем будет немедленно удалено без ввода данных пользователем. Он просто появляется, а затем мгновенно исчезает. Это большая проблема, потому что если вы не можете нажать кнопку ОК в диалоговом окне подтверждения, то все, что вы пытались сделать, не произойдет.
Чтобы уточнить, это не имеет ничего общего с исправлениями Chrome для злоупотреблений диалогом javascript, такими как отклонение диалога при смене вкладок. Поведение, о котором я говорю, очевидно, работает не так, как задумано, поскольку диалог должен либо показывать и разрешать взаимодействие, либо не показывать вообще.
Я обнаружил, что эта проблема исчезает, если я закомментирую код для пикселя Facebook с главной страницы. Похоже, что любой пиксель отслеживания событий вмешивается в диалоги javascript, но только в Chrome. С другими браузерами все в порядке.
Пример кода приведен ниже, если другие, кто использует Facebook Pixel, могут повторить это, что было бы полезно знать, я ищу обходной путь, но пока лучшее, что я придумал, - это заменить пиксельный javascript-код их опцией IMG.
Код пикселя Facebook :
<script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window,document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '<YOURID>'); fbq('track', 'PageView'); </script> <noscript> <img height="1" width="1" src="https://www.facebook.com/tr?id=<YOURID>&ev=PageView &noscript=1"/> </noscript>
Кнопка для запуска диалогового окна:
<asp:Button runat="server" ID="TestButton" OnClientClick="return confirm('Are you sure that you want to do this?');" Text="Confirm" />
Что я уже пробовал:
Я обнаружил, что удаление Facebook Pixel javascript решает эту проблему. Просто комментирование строки fbq('track', 'PageView') делает свое дело. Но, конечно, мне нужен пиксель Facebook, чтобы продолжать работать, или я получу разговор.
Patkós Csaba
@StatementTerminator нашли ли вы решение этой проблемы? У меня есть та же проблема, но я еще не нашел никакого обходного пути.
StatementTerminator
Нет, единственное обходное решение, которое я нашел до сих пор, - это просто отказаться от javascript для Pixel и использовать вместо него их решение IMG.
Patkós Csaba
Эй, спасибо. Я попробую это сделать.