Javascript加载但没有运行 - rails 3.1

时间:2011-12-01 18:52:25

标签: javascript jquery ruby-on-rails-3.1 loading

我在我的应用程序布局文件中有一个外部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>

- 编辑 -

rails生成的结果:

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

1 个答案:

答案 0 :(得分:0)

使用<%=方法加载时,它不会评估脚本。我不熟悉那种语法,但从效果来看,这听起来就是这样。它将脚本视为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的东西。

如果您必须能够动态加载,那么您将不得不弄清楚嵌入代码中的错误位置,或者是否有其他一些激活方法。该网站的文档似乎不是英文版,所以我无法帮助解决这个问题。