2012-12-28 59 views
2

我有一個下面的腳本,它在我的Windows瀏覽器中工作。但這段代碼在Epub電子書中無法使用(在我的iPad iBooks中)iPad Ibooks Javascript Canvas DrawImage不起作用

<canvas id="e" width="177" height="113"></canvas> 
<script> 
    var canvas = document.getElementById("e"); 
    var context = canvas.getContext("2d"); 
    var myImg = new Image(); 
    myImg.src = "../Images/box.jpg"; 
    myImg.onload = function() { 
     context.drawImage(myImg, 0, 0); 
    }; 
</script> 
+0

除非我錯了,你不能在電子書中使用JavaScript。 – Cerbrus

+1

ePub電子書支持Javascript。 – karthi

回答

0

是的,這是正確的。看來iBooks支持很多畫布,但不支持drawImage功能。我在一兩個月前向蘋果公司提交了此消息,並且尚未收到有關這是錯誤還是預期行爲的回覆。這可能有一些安全原因,但這不起作用,但考慮到它在移動Safari中的作用,這看起來很奇怪。

0

首先,給Derrick Schultz一個問題。你是如何向蘋果提交錯誤報告的?

那麼,這是我自己的發現。

平臺:iPad的iBooks。 EPUB。的JavaScript。

帆布。 drawImage()函數。

不起作用。即使頁面「刷新」(或重新分頁?通過旋轉iPad)也不行。這個解決方案是一個完整的禁止。

以前的解決方案現在似乎是唯一的部分解決方法。

所以,是的。 Canvas和drawImage()在iPad中不起作用。

隱藏的元素,呈現屏幕上的第一

我創建用於經由交互(JavaScript)的我想顯示所有圖像元素。

關鍵步驟。我確保所有圖像先在屏幕上呈現(可見)。我不得不爲此做一個setTimeout()。

問題:什麼是iBooks事件讓我知道所有圖像都在屏幕上呈現? windows.onLoad不起作用。即使所有單獨圖像的onLoad都不起作用。

然後我隱藏(display: none)所有圖像,並在用戶輸入時顯示它們。

作品。

唯一的問題是,大圖片並不都適合在屏幕上(因爲我必須先顯示它們全部)將不起作用。它們不在屏幕上呈現。您可以通過在iBooks上打開Scrolling View來驗證此理論。當Scrolling View開啓時,所有圖像,無論多大,都可以在屏幕上呈現。

PS:哇。 Stackoverflow不允許對答案進行評論(需要澄清)(需要50點聲望點)。但它允許我發佈答案?