Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Добавление кода внутрь script (https://javascript.ru/forum/jquery/36910-dobavlenie-koda-vnutr-script.html)

Darko666 31.03.2013 20:31

Добавление кода внутрь script
 
Привет всем! Пытаюсь заменить на веб-страничке стандартный title более приятным всплывающим окном. Остановил свой выбор на TipTip http://code.drewwilson.com/entry/tiptip-jquery-plugin. Для использования данной функциональности необходимо подключить несколько скриптов к страничке.

Как добавить в пространство между <script>...</script> код?

tiptip_body_script = document.createElement('script');
tiptip_body_script.type = "text/javascript";
var script_code = "$(function(){$("#spantext").tipTip();});";
tiptip_body_script.appendChild(document.createText Node(script_code));
document.body.appendChild(tiptip_body_script);

Но у меня происходит такая вот лажа:
Uncaught SyntaxError: Unexpected token ILLEGAL
Причем отсылка идет на строчку var script_code = ...
В чем проблема?
Не смог нагуглить как добавлять произвольный код внутрь тэга script, поэтому спрашиваю здесь.

danik.js 31.03.2013 20:36

А не проще прописать прям на странице этот скрипт? Зачем все эти пляски с динамическим созданием тега <script> ?
А косяк у тебя в кавычках. И ты бы не создал эту беспонтовую бессмыссленную тему если бы пользовался редактором с подсветкой (notepad++, sublime text etc). Или хотя бы потрудился отформатировать код тут:
var script_code = "$(function(){$("#spantext").tipTip();});";

(если не дошло - подсветка поломалась из-за рано закрытой кавычки)

Darko666 31.03.2013 21:17

Спасибо. Можно тогда еще один вопрос.

Я пишу расширение для хрома. Если знакомы с api google, то знаете, что есть так называемые "content script", которые подключаются к текущей веб-странице. Мне бы хотелось динамически подключать jQuery к странице. Метод с добавлением тега script не работает, видимо потому что интерпретатор html внешние ресурсы грузит только при первом проходе.

Есть какие-нибудь идеи как это сделать просто и красиво, без запихивания кода jQuery на страницу.

Повторяю, такой метод:

var lib = document.createElement('script');
lib.type = "text/javascript";
lib.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js";
document.head.appendChild(lib);

Не работает!

danik.js 31.03.2013 22:13

Цитата:

Сообщение от Darko666
Не работает!

Ну конечно же не работает!!! 100%!!!

<head>
<script>
var lib = document.createElement('script');
lib.type = "text/javascript";
lib.onload = function() { alert( $('<div>ха ха!</div>').html() ) };
lib.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js";
document.head.appendChild(lib);
</script>
</head>


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


Часовой пояс GMT +3, время: 14:21.