图像按钮JS swap在webkit / phonegap上不起作用?

时间:2013-01-17 10:11:01

标签: javascript android image cordova webkit

我试图让一个简单的图像按钮在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中工作......

1 个答案:

答案 0 :(得分:0)

Webkit不支持标记为无法修复的DOM属性变异(请参阅issue 8191)。 可能与您的问题有关联。

作为一种解决方法,我认为您应该只删除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;
}