如何使用 ajax 在 Sinatra 中包含 javascript 文件



注意:当我不使用ajax时,这工作正常。 我对苗条和哈姆也有同样的行为。这是将ajax与Sinatra一起使用的来源

我正在尝试在使用 ajax 时使用 sinatra 创建的页面中运行一些 javascript。 请参阅下面的使用 haml 的示例。 这工作正常。 有什么方法可以使用包含javascript的文件,而不是下面的alert语句,即。使用警报.js

@@testjavascript
%p #{@time}
:javascript
  alert("Hello world");

下面只是为了提供有关替代方法的其他背景信息。当我尝试使用脚本语句时,脚本嵌入到我的 html 元素中。 这是我正在做的事情:

我用的是右.js。 我添加此事件处理程序:

"#testscript".onClick(function(event) {
  event.stop();
  $('msg').load("/testscript");
});

和哈姆尔:

@@testscript
%p #{@time}
%script src="about.js"

当我这样做时,p 元素和脚本元素嵌入到div 中。

<div id="msg">
  <p>The time is 2014-01-05 12:21:39 +0800</p>
  <script>
    src="about.js"
  </script>

请注意,您的输出

<script>
  src="about.js"
</script>

实际上不是您可能想要的。你真正想要的可能更像这样:

<script src="about.js" />

为了获得类似的东西,您需要将 src 属性添加为 HAML 中的属性,如下所示:

%p #{@time}
%script{:src => "about.js"}

另一个问题是你的jquery。它应该是 $('#msg').load ,带有 # 符号,因为那是div 的 id。

最新更新