簡體   English   中英

香草javascript渲染平面文本鐵路

[英]vanilla javascript rendering plane text RAILS

我一直在使用vanilla javascript,我只是渲染一個簡單的警報消息,但它將JS代碼呈現為視圖中的平面字符串。 這是我的代碼

def index
render :js => "alert('Hello Rails');"
end

它呈現相同的字符串“alert('Hello Rails');” 對於我而言,而不是警報消息。 我在Rails 3和Rails 指南中代碼看起來不錯。

任何答案將不勝感激。 謝謝

比較以下兩個片段:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
    alert('Hello Rails');
    </script>
</body>
</html>

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    alert('Hello Rails');
</body>
</html>

第一個生成警報消息,第二個只顯示字符串。 瀏覽器不執行JS代碼,除非它包含<script>標記。 @Erez答案中的jQuery ajax調用也在內部用<script>包裝響應。

因此,如果您直接訪問您的操作,請嘗試使用<script>包裝它,或者更好地使用javascript_tag幫助程序(http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-javascript_tag)

你正在渲染JS好。 問題在於接收此JS的瀏覽器並將其顯示為純文本。

嘗試發送一個AJAX請求(在這里使用JQuery):

$.ajax(url: '/index/url', type: 'GET', dataType: 'script')

請注意,dataType設置為script,這意味着JQuery將以JS的形式執行返回的文本。

這個的簡短版本將是

$.getScript('/index/url');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM