0

我正在尝试让一个简单的图像按钮在 Phonegap 中工作。我想在单击时交换图像并在短时间内转发到位置。

所以我尝试过:

function highl(Bildname,BildURL,Link) {
document.images[Bildname].src = BildURL;
window.setTimeout(forward,1000);

function forward() {
window.location = Link;
}
}

在 HTML 中只是链接,如:

<a href="javascript:highl('level01','level1h.png','test.html')"><img name="level01" src="level1.png" border="0"></a>

在我的 Moz 中运行良好,但在 Webkit/phonegap 中运行良好(交换不能正常工作)。

有人可以帮忙吗?

编辑:在 chrome 中也不起作用...

4

1 回答 1

0

Webkit 不支持 DOM 属性突变(参见issue 8191)标记为won't fix。您的问题可能与链接有关。

作为一种解决方法,我认为您应该简单地删除 DOM 节点的内容,并创建一个新的图像节点。

编辑:用代码

您需要识别容器。另外,我设置了href,这样我的javascrpt被禁用了,链接仍然可以被关注。如果启用了 javascript,则return false告诉浏览器不要跟随链接。

<a href="test.html" onClick="return highl(this, 'level1h.png', 'test.html');">

javascript。我已经内联forward了,因为它很短,但你不需要。

function highl(el, imgURL, link) {
  var img =  new Image();
  img.src = imgUrl;
  // remove current image. TODO ensure firstChild is not null?
  el.removeChild(el.firstChild);
  // place new image
  el.append(img);
  setTimeout(function() {window.location=link;}, 1000);
  return false;
}
于 2013-01-17T10:37:58.603 回答