2013-10-19 49 views
2

我使用Ruby on Rails的4 - 應用程序/視圖/佈局/ application.html.erb包含:軌道4 turbolinks導致HTML畫布消失在iPad上

<!DOCTYPE html> 
<html> 
    <head> 
    <%= javascript_include_tag "application" %> 
    </head> 
    <body> 
    <canvas id="can"></canvas> 
    <%= link_to "link to here", "#" %> 
    <button onclick="task()" >make square</button> 
    </body> 
    <script> 
    function task(){ 
     var c = document.getElementById("can"); 
     var ctx = c.getContext("2d"); 
     ctx.fillStyle="#FF0000"; 
     ctx.fillRect(0,0,c.width,c.height); 
    } 
    </script> 
</html> 

--app /資產/ JavaScript的/application.js包含:

//= require turbolinks 

這個程序工作正常我在Chrome和Firefox的工作站上。然而,在我的Safari中,當我點擊鏈接時,我不能再通過單擊按鈕使畫布重新出現。按鈕在我重新加載頁面時起作用。如果我刪除了application.html.erb的第4行,那麼Safari的行爲就像Chrome一樣,並且按鈕始終工作。但是,如果沒有第4行,該鏈接不再導致該框消失。

這是我的第一個鐵軌項目。我在這裏完全失敗,任何幫助,見解,線索或建議將不勝感激。先謝謝你。 --laertiades

回答

1

我認爲turbolinks有一些bug。

我想實現我的網站上skrollr,

和turbolinks是造成某種錯誤的,阻止skrollr從

在重新加載/後命令工作正常。

您可能遇到了和我一樣的問題。

放一些console.log語句,看看你的頁面是否立即被加載兩次。

第二次加載時,它顯示日誌,但不顯示行號。

我還沒有弄清楚,所以我剛剛從我的應用程序中刪除了turbolinks。

Turbolinks「讓你的應用程序更快以下鏈接」,

,所以它不是一個必要的功能,你必須在你的應用程序。

你可以簡單地刪除行

//=require turbolinks 
+0

謝謝你的迴應。我的控制檯爲兩個設備顯示相同的消息:'代碼'啓動GET「/ people」爲127.0.0。1在2013-10-19 11:16:53 -0700 通過CompanyInfoController處理#人物爲HTML 在佈局/應用程序中呈現company_info/people.html.erb(0.1ms) 在3ms中完成200 OK(查看:2.8ms | ActiveRecord:0.0ms)'code' – laertiades

+0

turbolinks是沒有必要的。如果您找不到解決方案,我建議您只刪除該行。 –

+1

我很欣賞你的建議。現在,我想嘗試解決問題,而不是避免它。感謝您的貢獻。 – laertiades

0

我終於摸索出如何獲得skrollr與turbolinks或擺弄小時後任何其他pushState的方法來工作。

嵌入並調用skrollr功能正常:

$(window).ready(function() { 
var s = skrollr.init(); 
}); 

爲您pushState的插件的新頁面或加載頁面的功能,然後使用skrollr.init().refresh();。因此,與turbolinks使用:

$(document).on('page:load', function() { 
skrollr.init().refresh(); 
}); 

希望這將節省別人很多的時間,應該在skrollr文檔,特別是因爲有它寶石引用。