Не могу добавить скрипт к голове - PullRequest
1 голос
/ 26 ноября 2011
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = 'http://www.mydomain.com/bleh.php';
script.id = 'rawr';
$('head').append(script);
alert($('#rawr').attr('src'));

Возвращает ноль. Почему это?

Ответы [ 3 ]

3 голосов
/ 26 ноября 2011

Почему бы не использовать getScript ?

0 голосов
/ 26 ноября 2011

Что-то, на что стоит обратить внимание. Запустите это с открытым Firebug.

<script src="jquery.js" id="jq"></script>
<title>Untitled Document</title>

</head>

<body>
<div id="container"></div>
<script type="text/javascript">
$(function(){
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js';
script.id = 'rawr';

$('head').append(script);
console.log($('#jq'));
});
</script>

U увидит, что jqueryUI не отображается на вкладке HTML Firebug, но когда вы посмотрите на вкладку Net, он показывает, что файл jQueryui.min загружен. Теперь нажмите на вкладку консоли и разверните элемент #jq. Вы можете увидеть все доступные вам варианты. Там нет src или источник вариант. Надеюсь, это помогло.

0 голосов
/ 26 ноября 2011

Вместо этого можно использовать обычный .appendChild():

$('head')[0].appendChild(script);

http://jsfiddle.net/PeaqH/

Для этого нужно получить доступ к первому элементу <head> на странице, а затем использоватьобычный DOM аппенд.Почему метод, который вы попробовали, не сработал, я не уверен ... Я должен подумать об этом, хотя я подозреваю, что это как-то связано с тем, как jQuery обрабатывает добавление script элементов на страницу.

...