Почему document.body == пустой указатель в Firefox, но не Safari

Не только необходимо выполнить его в транзакции, этому также нужен высокий уровень изоляции. Я уровень изоляции значения по умолчанию факта являюсь Фиксировавшим Read и эта сериализуемая потребность кода.

SET transaction isolation level SERIALIZABLE
BEGIN TRANSACTION Upsert
UPDATE myTable set Col1=@col1, Col2=@col2 where ID=@ID
if @@rowcount = 0
  begin
    INSERT into myTable (ID, Col1, Col2) values (@ID @col1, @col2)
  end
COMMIT TRANSACTION Upsert

, Возможно, добавление также @@ проверка на ошибки и откат могли быть хорошей идеей.

5
задан dlamblin 27 October 2009 в 14:20
поделиться

4 ответа

Обычная причина, по которой document.body имеет значение null, заключается в том, что вы выполняете скрипт до того, как встретился тег (*). Не видя кода, я не могу сказать наверняка, но это обычная причина. Переместитесь туда, где вы разместили скрипты.

(*: или другой элемент, такой как

, который, как известно браузеру, не может находиться вне тела, и в этом случае он незаметно добавляет , чтобы исправить недостающую разметку. Различие в синтаксическом анализе некоторых тегов, обычно содержащихся в теле, может объяснить, почему Safari позволяет вам избежать неприятностей.)

Может быть, это является причиной FF, есть ли проблемы с телом?

Нет. Это нарушенная разметка, и Drupal не должен этого делать, но закрытие не делает '

9
ответ дан 13 December 2019 в 19:30
поделиться

Что ж, это странно, но просто добавив эту строку в конце моего $ (document) .ready (function () {}); исправлено все, что нарушало body:

  if(null==document.body){document.body = $('body')[0];}

Но мне нужно будет больше узнать, почему он вообще сломался, а также почему он не сломался в сафари.

0
ответ дан 13 December 2019 в 19:30
поделиться

There should not be any output from Drupal below the body tag. Check your themes page.tpl.php file. The end should look pretty much like this:

<!-- BEGIN closure: must always be last element in body -->
    <?php print $closure; ?>
<!-- END closure -->

</body>
</html>

There should be no print statement below the output of the $closure variable, as this needs to be the last content output (but still within the body).

1
ответ дан 13 December 2019 в 19:30
поделиться

Не используете ли вы наряду с jQuery другой JS фреймворк? Если да, то позаботились ли вы о том, как загрузить обе библиотеки, чтобы они оставались совместимыми (порядок, исправление совместимости...) ?

1
ответ дан 13 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: