0

我正在使用 HTML+Javascript 在 Metro 中开发一个应用程序。当它们用于在 img 标签中创建链接时,我的链接不起作用:

<h4><a href="/pages/childpage.html">Go to child page</a></h4>
<a href="/pages/childpage.html"><img src="/images/home/child.jpg" /></a>

第一个链接工作正常,第二个链接不行。当我单击图像时,它会阻止应用程序。

对于链接,我按照文档中的建议使用 Application.PageControlNavigator 。我的 JS 有:

(function () {
   "use strict"; 

   function linkClickEventHandler(eventInfo) {
       eventInfo.preventDefault();
       var link = eventInfo.target;
       WinJS.Navigation.navigate(link.href);
   }

   WinJS.UI.Pages.define("/pages/home/home.html", {
       ready: function (element, options) {
           WinJS.Utilities.query("a").listen("click", linkClickEventHandler, false);
           WinJS.UI.processAll();
       }
   });
})();
4

3 回答 3

2

问题是 link.href 在标签内使用标签时返回 src 字符串而不是 href 字符串。在您的情况下,link.href 返回“/images/home/child.jpg”。我认为这是一个错误而不是一个功能。解决方法是不使用 href.link。

于 2012-09-12T13:39:58.800 回答
2

你可以这样做:

使用<a>标签的 onclick 属性并调用 handler() 函数,如下所示:

<a onclick="handler();"><img src="/images/home/child.png" /></a>

处理函数的主体如下图所示:

function handler()
{
     WinJS.Navigation.navigate('/pages/childpage.html');
}

对我来说工作得很好。

于 2012-11-07T05:46:33.997 回答
0

通过块,我假设您的意思是“挂起”?当您单击图像时,它会调用您的 linkClickEventHandler 吗?

于 2012-07-20T15:37:22.490 回答