Могу ли я с помощью многовариантного тестирования Google Website Optimizer варьировать несколько классов css в одном элементе div?

Я хотел бы использовать многовариантные тесты Google Website Optimizer (GWO) для тестирования различных версий веб-страницы. Я могу переходить от версии к версии, просто изменяя некоторые теги классов в div, т.е. разные версии имеют следующую форму:

<div id="testing" class="foo1 bar1">content</div>
<div id="testing" class="foo1 bar2">content</div>
<div id="testing" class="foo2 bar1">content</div>
<div id="testing" class="foo2 bar2">content</div>

В идеале я мог бы использовать код раздела GWO вместо каждого класса, а Google просто поменял бы местами соответствующие теги (foo1 или foo2, bar1 или bar2). Однако наивное выполнение этого приводит к ужасно искаженному коду, потому что я бы попытался поместить теги <script> внутри атрибута класса div:

<div id="testing" class="
  <script>utmx_section("foo-class")</script>foo1</noscript>
  <script>utmx_section("bar-class")</script>bar1</noscript>
">
  content
</div>

И действительно, браузер давится всем этим.

Мой текущий лучший подход — просто использовать разные div для каждой переменной в тесте, как показано ниже:

<script>utmx_section("foo-class-div")</script>
  <div class="foo1">
</noscript>
  <script>utmx_section("bar-class-div")</script>
    <div class="bar1">
  </noscript>
    content
  </div>
</div>

Таким образом, для тестирования нескольких переменных требуется уровень вложенности div для каждой переменной, и все это кажется довольно неудобным.

Есть ли лучший подход, который я мог бы использовать, в котором я просто меняю классы в одном div?


person brahn    schedule 07.06.2010    source источник


Ответы (1)


Вероятно, лучший способ:

<div id="testing">content</div>

<script>
var testingDiv = document.getElementById('testing');
</script>

<script>utmx_section("foo-class-div")</script>
  <script>
  testingDiv.setAttribute('class', testingDiv.getAttribute('class') + ' foo1');
  </script>
</noscript>
<script>utmx_section("bar-class-div")</script>
  <script>
  testingDiv.setAttribute('class', testingDiv.getAttribute('class') + ' bar1');
  </script>
</noscript>
person erikvold    schedule 08.06.2010
comment
Это определенно улучшение! (Я немного подожду, чтобы принять ответ, чтобы узнать, есть ли у кого-нибудь другие подходы.) - person brahn; 08.06.2010
comment
Не могли бы вы пометить этот вопрос с помощью «javascript», если можете? - person erikvold; 09.06.2010