我遇到了Ruby on Rails中的一個奇怪的錯誤。我試圖實現Uploadify JQuery庫來處理使用flash對象的多個上傳。我正在使用Ajax加載的選項卡上實現此功能。之前,我在我的Uploadify js文件的javascript_include_tag與受Uploadify影響的相關HTML相同的ajax頁面上。 但是,這產生了一些非常奇怪的結果。有時候,在該頁面上對我的Uploadify函數的調用將會起作用,而其他時候則會完全失敗。如果在這種情況下,它通過在標籤之間切換並在第二次或第三次檢索Ajax頁面時無效,它通常會解決問題。奇怪的是,如果我用Firebug檢查了HTML,即使Javascript功能正常工作,也無法看到JavaScript鏈接,儘管我確實看到了該文件的網絡請求。我嘗試將uploadify的javascript_include_tag移動到我的應用程序佈局中的head標籤,但隨後Uploadify flatout停止工作。Rails 3應該將所有Javascript存儲在頭標記中?
當我通過Ajax頁面上的鏈接標記將uploadify功能推送到我的生產服務器時,問題仍然存在,但頻率較低。事實上,我只注意到它幾次。此外,這種功能在任何其他瀏覽器時期都不再適用,只是Firefox,但這可能是一個完全不同的問題,我會弄清楚(即使Javascript應該是獨立於瀏覽器的....)。
這裏是我的頭標記看起來像當我試圖包括它的uploadify電話:
%head
%title Virtual Robot Games
= stylesheet_link_tag 'style.css','web_app_theme.css', 'events.css', :media => 'screen'
= csrf_meta_tag
= javascript_include_tag 'jquery'
= javascript_include_tag 'prototype'
= javascript_include_tag 'noconflict.js'
= javascript_include_tag 'effects.js'
= javascript_include_tag 'calendar_date_select'
= javascript_include_tag 'highlight'
= javascript_include_tag 'textcounter'
= javascript_include_tag 'scriptaculous.js'
= javascript_include_tag 'collapsible.js'
= javascript_include_tag 'bbhelp.js'
= javascript_include_tag 'swfobject'
= javascript_include_tag 'application'
= javascript_include_tag 'uploadify'
額外的信息:
我同時使用Prototype和jQuery和他們不斷與另一個衝突,但我通常能夠解決這個問題。我從來沒有見過這兩個庫衝突的地方,而且我只有一些JQuery,有時候它只是工作。通常情況下,如果發生衝突,它將不起作用。
編輯 其實我覺得我想通了這個問題,我使用的是jquery-rails寶石,我忘了,包括我的Uploadify js文件jQuery庫。相反,我有一個內聯的googleapi鏈接。使用包含電話替換google api鏈接解決了問題。儘管我的原始問題是,我的JavaScript鏈接是否應該存儲在我的頭標記中?
只要問一下,我會盡量準備這個問題的臨時實例。 – Noz 2012-07-11 16:08:44