无法附加脚本

时间:2011-11-26 04:36:08

标签: javascript jquery greasemonkey script-tag

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'));

返回null。这是为什么?

3 个答案:

答案 0 :(得分:3)

为什么不使用getScript

答案 1 :(得分:0)

您可以改为使用常规.appendChild()

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

http://jsfiddle.net/PeaqH/

这将是访问页面上的第一个<head>元素,然后使用常规DOM子级追加。至于为什么你尝试的方法不起作用,我不确定......我必须考虑它,虽然我怀疑它与jQuery如何处理向页面添加script元素有关

答案 2 :(得分:0)

值得研究的东西。在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>

你会看到jberyUI没有显示在firebug的HTML标签中,但当你看到Net标签时,它显示jQueryui.min文件已加载。 现在单击控制台选项卡并展开#jq项目。您可以看到所有可用的选项。没有src或source选项。 希望这有帮助。