Я работаю над одностраничным приложением, которое, вероятно, запустит более 1 конверсии за загрузку страницы.
Мне нужно запустить фрагмент конверсии Google, поэтому я предположил, что могу добавить его во время выполнения. Фрагмент выглядит примерно так:
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = XXXXXXXX;
var google_conversion_language = "en";
var google_conversion_format = "2";
var google_conversion_color = "ffffff";
var google_conversion_label = "XXXXXXXXXXXXXXX";
var google_conversion_value = 25.00;
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
Я использовал javascript для вставки фрагмента, когда преобразование было запущено. Я делаю это так:
function(id,url,content){
// add script
var script = document.createElement("script");
script.type = "text/javascript";
if(url) script.src = url;
if(content) script.text = content;
var bucket = document.getElementById(id);
bucket.appendChild(script);
debugger;
}
Это работает во всех браузерах, в которых я пробовал, кроме сафари.
В сафари, когда добавляется второй тег сценария, содержимое всего тега тела заменяется на Google iFrame. Весь дом на самом деле является ядерным оружием. Содержимое головы также уничтожено.
Что, черт возьми, происходит в этом скрипте Google, и как мне вставить это, чтобы все не взорвалось?!?
Обновление:
Похоже, по какой-то причине сафари не понравилось то, как я добавил скрипт. Чтобы это исправить, я добавил bucket.innerHTML = ''
ниже строки debugger
, и в Safari он отлично работал. К сожалению, это заставило FF 3.6 сделать то, что раньше делал сафари, и уничтожить DOM.
Чтобы сделать его еще более сложным, кажется, что AdWords отклоняет эти преобразования или что-то в этом роде, они не отображаются в конце отчета при добавлении на страницу.
В настоящее время мой подход заключается в использовании htaccess и небольшого разбора строк для создания страницы, на которой ничего нет, кроме фрагмента преобразования, и вставки его в iFrame. Я сообщу об этом.