Еще в ноябре обнаружил одну особенность в работе асинхронного кода (о чем писал тут http://clubs.ya.ru/partner/replies.xml?parent_id=758&item_no=726&with_parent=1#reply-partner-758 никто не ответил, проблема все еще есть). В Опере (вер. 11.52) блок выводился даже тогда, когда на странице не было нужного элемента с идентификатором из функции insertInto. В других браузерах блок не появлялся, а Опера выводила его где попало. Пришлось дополнять код, выдаваемый конструктором блоков, проверкой на существование нужного элемента на странице.
Может быть стоит проверять наличие элемента на стороне Директа? Ну или хотя бы добавить в конструкторе асинхронного кода строчку
if (typeof($('#ya_direct').get(0)) != 'undefined'){
Ya.Direct.insertInto(xxxx, " ya_direct ", {...}
}
чтобы не приходилось дописывать самому.