使用jQuery动态附加脚本

时间:2012-03-01 15:57:03

标签: javascript jquery

我有一个问题,这个问题在过去的几天一直令我不安。我必须通过添加脚本标记来实现对我的网站的跟踪,如下所示。

<script src="domain">

但是,一旦javascript事件被触发,我需要附加脚本标记。我做了一些研究,发现这可以使用jQuery .getScript()函数来实现。示例代码如下所示。

$('body').bind("success", function(e, data) {
    // Call for the tracking scipt here
    $.getScript("domain", function() {});
});

我的问题是加载的脚本包含以下代码:

document.write(<img src='domain'/>); 

不幸的是这段代码没有被执行,(我猜测,因为在我附加脚本时已经加载了DOM,document.write()函数将无效。)我也尝试使用原生的javascript代码,如图所示以下无济于事。

var body = document.getElementsByTagName("body")[0];         
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "domain";
body.appendChild(script);

目前,我已经设法通过将scipt标记放在单独的页面中然后从触发的JS事件中的不可见的iFrame中加载页面来实现此目的。我真的不喜欢这个想法,所以任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您的代码应该有效。但我怀疑它是否适用于没有引号的所有浏览器。所以给出

document.write("<img src='http://www.google.co.in/images/srpr/logo3w.png'/>"); 

或者你可以试试jQuery

$("<img/>").attr("src", "http://www.google.co.in/images/srpr/logo3w.png").appendTo("body");

我建议添加div作为图片的容器

<div id="container"></div>

然后在动态脚本中使用jQuery或palin javascript添加图像。

$("<img/>").attr("src", "http://www.google.co.in/images/srpr/logo3w.png").appendTo("#container");

var container = document.getElementById("container");
var img = document.createElement("img");
img.src = "http://www.google.co.in/images/srpr/logo3w.png";
container.appendChild(img);