Javascript加载但不运行- rails 3.1

Javascript loading but not running - rails 3.1

本文关键字:rails 运行 加载 Javascript      更新时间:2023-09-26

我有在我的应用程序布局文件的外部javascript文件有几行代码,并在最后运行一个函数,如BooManager.init()没有什么大不了的…

问题是,它没有在这个javascript文件上运行内部代码。

我是这样使用的:

<script type="text/javascript">
    bb_bid = "1615455";
    bb_lang = "en-US";
    bb_keywords = "iphone4s, apple";
    bb_name = "custom";
    bb_limit = "8";
    bb_format = "bbb";
</script>
<%= javascript_include_tag "http://widgets.boo-box.com/javascripts/embed.js" %>

但是它没有做任何它应该做的…

我已经尝试在简单的HTML文件,它的工作原理…我做错了什么?

注意:

在HTML中的默认方式是:

<script type="text/javascript">
    bb_bid = "1615455";
    bb_lang = "en-US";
    bb_keywords = "keywords, between, commas";
    bb_name = "custom";
    bb_limit = "8";
    bb_format = "bbb";
</script>
<script type="text/javascript" src="http://static.boo-box.com/javascripts/embed.js"></script>

—EDIT—

rails生成的结果:

<script type="text/javascript" src="http://static.boo-box.com/javascripts/embed.js"></script>

使用<%=方法加载时不评估脚本。我不熟悉这种语法,但从效果上看,就是这样。它将脚本视为html而不是代码。

jQuery有一个脚本加载函数,它将从一个URL动态获取一个脚本,然后eval()它执行。

用样例代码更新

添加jQuery到你的应用程序:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>

然后用它来加载你的脚本:

$.getScript('http://widgets.boo-box.com/javascripts/embed.js');

第2次更新

我可以在这个提琴中重复这个问题:http://jsfiddle.net/7x2zT/4/

如果您试图完成的是在脚本显示小部件之前激活您的参数—默认的小部件看起来像一个边栏,而您的参数使它更像一个横幅,那么请确保将您的参数放在<script src内容之上。

如果必须能够动态加载,那么你就必须找出嵌入代码中的错误所在,或者是否有其他激活方法。那个网站的文档好像不是英文的,所以我没法帮忙。