StatementTerminator Ответов: 1

Проблема с диалогами подтверждения и пикселем 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

Эй, спасибо. Я попробую это сделать.

1 Ответов

Рейтинг:
1

StatementTerminator

Обновление: проблема волшебным образом исчезла с последним выпуском Chrome, так что, похоже, она будет исправлена.