2012-01-24 105 views
1

Rails的我有一个JavaScript,我呈现局部使用js.erb附加的Javascript使用AJAX

$('#registration-steps').fadeOut("fast").html("<%= escape_javascript(render :partial => @page, :layout => false)%>").fadeIn("slow"); 

问题是,在这部分我从AdWords的一些代码,我想渲染转换追踪:

如:

<script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js"> 

然而,当我打电话的部分,该脚本被剥离并没有被执行的JavaScript。

我想在我的js.erb与无济于事如下:

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.src = "https://www.googleadservices.com/pagead/conversion.js"; 
$("#tracking").append(script); 

回答

1

尝试使用jQuery的getScript加入函数动态执行脚本:

http://api.jquery.com/jQuery.getScript/`

然而,这仍然意味着,当你escape_javascript时,脚本中包含的部分内容会被损坏。

作为另一种可能性,你可以移动的包括你的部分和一个content_for呼叫添加到您的布局:在你js.erb文件的末尾

<% =content_for :ad_words %> 

然后我会插入:

<% content_for :ad_words do %> 
    <script type="text/javascript" src="https://www.googleadservices.com/pagead/conversion.js"> 
<% end %> 

这样就没有机会逃脱了。