Java и Drupal! Проблема!

big boy
На сайте с 18.11.2006
Offline
354
1798

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

Дело в том, что java скрипт не отображается, причем если вставить его не в страницу сайта (на движке Drupal) а открыть в отдельном файле то все ок.

В друпале отображается лишь хвост скрипта:

'); //-->

У меня родилась одна мысль, которая верна на все 100%. Для начала посмотрим на код скрипта:

<script language="JavaScript">
<!--
var url = "http://www.mob-tel.net/shop.php?get=now";
var pref = "check_";
var brand = "";
var show = 2;
var inblok = 3;
var type = "h";

var background = "F5F1FB";
var border = "E3D8F4";
var lnk_color = "0B57AC";
var text_color = "000000";
var price_color = "FF6600";
var font_size = 8;

document.write('<script language="JavaScript" src="http://tpart.diamondelectric.ru/informers/show_phones.php?...(вырезал, длинный слишком)"></script>');
//--></script>

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

Кто нибудь из программеров может мне оказать помощь?

big boy добавил 04.04.2008 в 01:16

Время не прошло даром.

Я выяснил, что все дело в доктапе (Doctype)

Вот стандартный:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

А какой надо использовать для инъекции java скриптов? Буду пробовать методом тыка...

✔ Как я генерирую статьи через ИИ, которые приносят трафик - https://webmasta.ru/blog/16-vkalyvayut-roboty-ne-chelovek-stati-s-pomoschyu-ii-kotorye-prinosyat-trafik
AN
На сайте с 05.06.2004
Offline
243
#1

Ставьте JS-код в блок, в котором отключите автоформатирование.

Размещу ваши баннеры на посещаемых сайтах. Места еще есть! Возможен безнал. (/ru/forum/324945) Нужны копирайтеры/рерайтеры - медики. Пишите в личку. (/ru/forum/676932)
zzeus
На сайте с 04.01.2008
Offline
74
#2

выберите "формат ввода" без фильтра. например - php из стандартных.

big boy
На сайте с 18.11.2006
Offline
354
#3

Да, я все это делал уже.

И прям в page.tpl вставлял - ничего не помогает. При том при всем каждый браузер отображает страницы по разному - то в одном виден скрипт, в другом нет, в одном меню начинает прыгать, в другом ваще весь шаблон перекосило. Если doctype совсем убрать - в лисе все чики пуки, а explorer переворачивает сайт вверх дном - прикольно конечно, но не юзабильно. С руками у меня все в порядке, не один скрипт уже интегрировал. А тут вот такая лажа! :(

Разве никто не сталкивался с такой проблемой раньше?

P
На сайте с 08.03.2007
Offline
250
#4

Drupal использует jQuery (jquery.com) - а там есть функция getScript(). Прочитайте, если описание и функционал понятен - можно сделать примерно так:

$.getScript("http://tpart.diamondelectric.ru...");

или для загрузки js только после загрузки всего документа:

$(document).ready(function(){
$.getScript("http://tpart.diamondelectric.ru...");
});

Но даже так некоторые проблемы будут - например, в какой момент загрузится этот скрипт неизвестно. Плюс обычные ошибки для AJAX, например из дискуссии:

Talk:Ajax/jQuery.getScript
From jQuery JavaScript Library
Jump to: navigation, search

This is a very useful function, but I ran into caching issues with Internet Explorer.

I have a function that calls getScript(). It is wrapped in a setInterval() to execute every minute. The problem is that after the first retrieval, IE wasn't fetching the script anymore. It was already cached so it just served up the cached response.

The solution was to serve up the getScript() response with the appropriate headers that instructed IE to not cache the file. Unfortunately, it took me a few hours to figure that out.

Я бы с догрузкой js не саязывался - будут постоянные глюки, трудно обнаружимые. И отладка затруднится. Тем более что в приведённом фрагменте никаких обоснований необходимости этого нет.

Справочник:

http://docs.jquery.com/Ajax/jQuery.getScript#urlcallback

http://docs.jquery.com/Events/ready#fn

big boy
На сайте с 18.11.2006
Offline
354
#5

Спасибо, Pilat!

big boy добавил 07.04.2008 в 21:47

Я бы с догрузкой js не саязывался - будут постоянные глюки

Ну а почему AdSense работает нормально всегда? Стоит ли в вышеуказанном примере грешить на "криворукость" самих разработчиков?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий