Необходимо вызвать функцию Javascript в Blogger

Участник Stackoverflow любезно предоставил код JavaScript для вызова использования функции сразу после появления первого символа «/a» в сообщении на сайте Blogger, по сути, для вставки рекламного поля прямо под начальным изображением сообщения и перехода на левая часть статьи.

Проблема в том, что это работает, только если я вставлю код JavaScript прямо под конец тела и после тега div.

Если я добавлю код JavaScript где-нибудь еще, в том числе прямо над конечным заголовком, это не сработает.

В нынешнем виде он не всегда загружает рекламу / окно (помеченное XXXXXX) во всех браузерах, а в тех, которые загружаются, требуется много времени для загрузки.

Я пробовал все виды вещей, мне не удалось это решить. Буду признателен за помощь.

Код, который мне дали, приведен ниже:

 <div id="payload" class="left">
XXXXXXXX
</div>

<div id="target">
Content within the target.
</div>

<data:post.body/><div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<script type='text/javascript'>
function insertAfter(addition,target) {
var parent = target.parentNode;

if (parent.lastChild == target) {
    parent.appendChild(addition);  
} else {
    parent.insertBefore(addition,target.nextSibling);
}
}

var payload = document.getElementById("payload");
var target = document.getElementById("target");

var anchors = target.getElementsByTagName("a");

if (anchors.length > 0) {
insertAfter(payload,anchors[0]);
}
</script> 

person Lars    schedule 23.10.2012    source источник
comment
вам нужно использовать обработчик onload или некоторую структуру для прослушивания DOMReadyEvent, такого как jQuery $(fnc), в противном случае код будет выполнен до того, как какой-либо тег привязки будет фактически загружен, кстати, неплохо держать код внизу страница...   -  person    schedule 23.10.2012
comment
Как бы то ни было, он работает в последней версии Firefox, хотя и замедляет работу страницы, и у него есть проблемы со всеми другими браузерами, включая IE9 и последний Chrome, где он вообще не загружается. Разве JavaScript не должен загружаться перед /head?   -  person Lars    schedule 23.10.2012


Ответы (1)


если вам разрешено использовать jquery, вы можете написать в голове

 $(function() {
     $("#payload").after($("#target").find("a").first());
 });
person Community    schedule 23.10.2012
comment
Спасибо за ответ, Крисим. Вы можете использовать Jquery, я попробовал код, оставив Javascript там, где он есть, а также переместив его над /head, но результат тот же: он перемещает поле/объявление над изображением, а не под ним, как я хочу. По сути, это похоже на то, что он не читает Javascript, если я перемещаю его из его текущей позиции. - person Lars; 23.10.2012
comment
@Lars для javascript, который не загружен, где он должен, я не знаю, но для проблемы со стилем, может быть, если бы я знал соответствующий CSS, я мог бы помочь - person ; 23.10.2012
comment
Конечно, это все (одна проблема заключается в том, что в Blogger начальное изображение является частью сообщения, а не отдельной сущностью) .addin { float:left; должность: родственница; отступ: 25px 15px 15px 0; } - person Lars; 23.10.2012
comment
Я думаю, вам следует обновить свой вопрос, указав немного больше о css, например, о классе тега a, css для тега a, #payload и т. д. Слишком сложно сказать, что не так, без дополнительной информации. - person ; 24.10.2012