2

我有一个下面的脚本,它在我的 Windows 浏览器中工作。但此代码在 Epub 电子书中不起作用(在我的 iPad iBooks 中)

<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>
4

2 回答 2

0

对,那是正确的。似乎 iBooks 支持很多画布,但不支持 drawImage 功能。我在一两个月前将此提交给 Apple,但尚未收到关于这是错误还是预期行为的回复。可能有一些安全原因这不起作用,但考虑到它在移动 Safari 中起作用,这似乎很奇怪。

于 2014-04-02T04:46:11.407 回答
0

首先,向 Derrick Schultz 提出一个问题。你是如何向 Apple 提交错误报告的?

好吧,这是我自己的发现。

平台:iPad iBooks。电子版。Javascript。

帆布。绘制图像()函数。

不工作。即使页面“刷新”(或重新分页?通过旋转 iPad)也不会。这个解决方案是完全不行的。

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

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

隐藏元素,首先呈现在屏幕上

我为我想通过交互(Javascript)显示的所有图像创建了元素。

关键一步。我确保首先在屏幕上渲染(可见)所有图像。我必须为此做一个 setTimeout() 。

问题:什么是 iBooks 事件让我知道所有图像都在屏幕上呈现?windows.onLoad不起作用。即使onLoad对于所有单独的图像也不起作用。

然后我隐藏(display: none)所有图像,并在用户输入时显示它们。

作品。

唯一的问题是不能全部显示在屏幕上的大图片(因为我必须先显示它们不起作用。它们不会呈现在屏幕上。您可以通过打开Scrolling ViewiBooks 来验证这一理论。启用时Scrolling View,所有图像,无论多大,都可以在屏幕上呈现。

PS:哇。Stackoverflow 不允许对答案发表评论(寻求澄清)(需要 50 声望点)。但它允许我发布答案?

于 2014-04-04T01:56:59.823 回答